#ifndef __GNUC__ choke me
Esta pregunta puede ser totalmente extraña, actualmente estoy trabajando en un código antiguo (no mío). En realidad, no soy un programador de C, pero estoy tratando de entender qué se supone que debe hacer esta parte del código. Afortunadamente, la parte extraña no es demasiado larga (parte de una configuración):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
Si no es un compilador GNU, entonces "choke me"... ¿qué se choke mesupone que significa esto? Realmente no lo entiendo. (y encontré solo cosas extrañas mientras buscaba en google me ahoga -.-)
Respuestas
Se supone que es algo que no es válido en C y activará un error de sintaxis, lo que evitará que el archivo se compile.
Es de suponer que el programador no pretendía que el código funcionara con ningún compilador excepto GNU C (gcc), por lo que esto forzará a que la compilación falle si se usa cualquier otro compilador. No hay un significado especial para las palabras elegidas, excepto que "estrangularme" probablemente se entendió en el sentido de "esto es algo que el compilador no puede 'tragar' y que lo matará".
El enfoque más moderno sería utilizar #error.
Es una declaración no válida, por lo que resultaría en un error.