Estoy compilando mi programa que se ejecutará en linux gcc 4.4.1 C99.
Solo estaba poniendo mis #defines para separar el código que se compilará en Windows o Linux. Sin embargo, recibí este error.
error: macro names must be identifiers.
Usando este código
#ifdef(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Sin embargo, cuando cambié a esto, se solucionó el error:
#if defined(WIN32)
/* Do windows stuff
#elif(UNIX)
/* Do linux stuff */
#endif
Me preguntaba por qué recibí ese error y por qué las #defines son diferentes.
Muchas gracias,
||
#if defined(NAME)
desde el principio y hubieran evitado crear una#ifdef
declaración.y
son lo mismo,
pero para hacer varias cosas a la vez, puede usar definido, como
fuente
#ifdef
comprueba si se ha definido una macro con ese nombre,#if
evalúa la expresión y comprueba el valor verdaderofuente
#if defined
y#ifdef
.