#ifndef __GNUC__ m'étouffe
Cette question peut être totalement étrange, je travaille actuellement sur un vieux code (pas de moi). Je ne suis en fait pas un programmeur C, mais j'essaie de comprendre ce que cette partie du code est censée faire. Heureusement, la partie étrange n'est pas trop longue (partie d'une configuration):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
Si ce n'est pas un compilateur GNU alors "choke me"... qu'est-ce que cela choke meveut dire ... je ne comprends vraiment pas. (et je n'ai trouvé que des choses étranges en m'étouffant sur Google -.-)
Réponses
C'est juste censé être quelque chose qui n'est pas valide en C et qui déclenchera une erreur de syntaxe, empêchant la compilation du fichier.
Vraisemblablement, le programmeur n'avait pas l'intention que le code fonctionne avec un compilateur à l'exception de GNU C (gcc), donc cela forcera la construction à échouer si un autre compilateur est utilisé. Il n'y a pas de signification particulière aux mots choisis, sauf que «m'étouffer» était probablement signifié dans le sens de «c'est quelque chose que le compilateur ne peut pas« avaler »et qui va le tuer».
L'approche la plus moderne serait d'utiliser #error.
C'est une déclaration invalide, donc entraînerait une erreur.