#ifdef e #ifndef (Directivas)

Directivas de preprocesador que determinan si se define una constante o macro de preprocesador específica.

#ifdef identificador ...
#endif
#ifndef identificador ...
#endif

Parámetros

Elemento Descripción
Identificador
Identificador de la constante o macro que se va a comprobar.

Comentarios

Puede usar las directivas #ifdef y #ifndef en cualquier lugar donde se pueda usar el #if . La instrucción #ifdef es equivalente a la directiva ). Estas directivas solo comprueban la presencia o ausencia de identificadores definidos mediante la directiva #define , no para los identificadores declarados en el código fuente de C o C++.

Estas directivas se proporcionan únicamente por compatibilidad con las versiones anteriores del lenguaje. Se prefiere el uso del operador definido con la directiva #if.

La directiva #ifndef comprueba lo contrario de la condición que comprueba #ifdef. Si el identificador no está definido, la condición es true (distinto de cero); de lo contrario, la condición es false (cero).

Ejemplos

El elemento identifier se puede pasar desde la línea de comandos con la opción /D. Se pueden especificar hasta 30 macros con /D. Es útil para comprobar si existe una definición, porque una definición se puede pasar desde la línea de comandos. En el ejemplo siguiente se usa este comportamiento para determinar si se va a ejecutar una aplicación en modo de prueba.

// PROG.CPP
#ifndef test
  #define final
#endif
int main()
{
}

Cuando se compila con el siguiente comando, prog.cpp se compilará en modo de prueba; de lo contrario, se compilará en modo final.

CL.EXE /Dtest prog.cpp

Consulte también

Directivas de preprocesador (DirectX HLSL)

#if, )