c-preprocessor - studio - tag debug c#
Diferencia entre las directivas del preprocesador#if y#ifdef (2)
Cuál es la diferencia (si existe) entre las dos siguientes declaraciones de control del preprocesador.
#if
y
#ifdef
Puedes demostrar la diferencia haciendo:
#define FOO 0
#if FOO
// won''t compile this
#endif
#ifdef FOO
// will compile this
#endif
#if
comprueba el valor del símbolo, mientras que #ifdef
comprueba la existencia del símbolo (independientemente de su valor).
#ifdef FOO
es un atajo para:
#if defined(FOO)
#if
también se puede usar para otras pruebas o para condiciones de preprocesador más complejas.
#if defined(FOO) || defined(BAR)