#ifdef directivas y #ifndef (C/C++)

Las #ifdef directivas de preprocesador y #ifndef tienen el mismo efecto que la #if directiva cuando se usa con el defined operador .

Sintaxis

#ifdef identifier
#ifndef identifier

Estas directivas son equivalentes a:

#if defined identifier
#if !defined identifier

Observaciones

Puede usar las #ifdef directivas y #ifndef en cualquier lugar #if . La #ifdefidentifier instrucción es equivalente a #if 1 cuando identifier se ha definido. Es equivalente a #if 0 cuando identifier no se ha definido o la directiva no lo ha definido #undef . Estas directivas solo comprueban la presencia o ausencia de identificadores definidos con #define, no para los identificadores declarados en el código fuente de C o C++.

Estas directivas solo se proporcionan por compatibilidad con versiones anteriores del idioma. Se prefiere la defined(identifier) expresión constante que se usa con la #if directiva .

La #ifndef directiva comprueba si hay lo contrario de la condición comprobada por #ifdef. Si no se ha definido el identificador o si se ha quitado su definición con #undef, la condición es true (distinto de cero). De lo contrario, la condición es false (0).

Específicos de Microsoft

El identificador se puede pasar desde la línea de comandos mediante la /D opción . Se pueden especificar hasta 30 macros con /D.

La #ifdef directiva es útil para comprobar si existe una definición, ya que se puede pasar una definición desde la línea de comandos. Por ejemplo:

// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif

FIN de Elementos Específicos de Microsoft

Véase también

Directivas de preprocesador