#ifndef __GNUC__ mi soffoca
Questa domanda potrebbe essere totalmente strana, attualmente sto lavorando su un vecchio codice (non da me). In realtà non sono un programmatore C, ma sto cercando di capire cosa dovrebbe effettivamente fare questa parte del codice. Fortunatamente la parte strana non è troppo lunga (parte di una configurazione):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
Se non è un compilatore GNU allora "choke me"... cosa choke medovrebbe significare ... davvero non lo capisco. (e ho trovato solo cose strane mentre cercavo su Google soffocarmi -.-)
Risposte
Dovrebbe essere solo qualcosa che non è C valido e attiverà un errore di sintassi, impedendo la compilazione del file.
Presumibilmente il programmatore non intendeva che il codice funzionasse con nessun compilatore eccetto GNU C (gcc), quindi questo costringerà la compilazione a fallire se viene utilizzato un altro compilatore. Non c'è alcun significato speciale per le parole scelte, tranne che "soffocami" era probabilmente inteso nel senso di "questo è qualcosa che il compilatore non può 'ingoiare' e che lo ucciderà."
L'approccio più moderno sarebbe quello di utilizzare #error.
È un'affermazione non valida, quindi comporterebbe un errore.