Una macro puede ser indefinido, que se puede definir sin valor o puede definirse con algún valor, posiblemente un número. Ejemplos:
#undef MACRO
#define MACRO
#define MACRO ??????
#define MACRO 0
#define MACRO 1
#ifdef MACRO o #if controles definidos (macro) si la macro se define, con o sin valor.
#if MACRO sustituye la definición de macro; si la macro no está definida, entonces sustituye 0. A continuación, evalúa la expresión que encuentra. Si tomamos los cinco ejemplos anteriores, #if macro será convertido en
#if 0
#if
#if ??????
#if 0
#if 1
Número 2 y 3 dan un error de tiempo de compilación. El número 1 y 4 se evalúan como falso, por lo que se omite el siguiente código. El número 5 se evalúa como verdadero.
#if es más flexible: Se puede escribir
#if MACRO == 2
que sólo compilará el código siguiente si se define la macro por ejemplo como
#define MACRO 2
Gracias. Para estar seguro: ¿Es suficiente #define IPAD_BUILD para definirse (sin ningún valor?) ¿Sería #ifdef IPAD_BUILD verdadero en este caso? – Geri
Parece que sí ._____ – Geri
en realidad no =) Voy a cambiar la respuesta. – Stas