visual tag studio sharp preprocesador else directivas define debug c-preprocessor

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)