Directiva #undef (C/C++)

Quita (anula la definición de) un nombre creado previamente con #define.

Sintaxis

#undefidentifier

Comentarios

La directiva #undef quita la definición actual de identifier. Por consiguiente, el preprocesador omite las apariciones posteriores de identifier. Para quitar una definición de macro utilizando #undef, solo hay que proporcionar el identifier de macro; no hay que proporcionar una lista de parámetros.

También puede aplicar la directiva #undef a un identificador que no tenga ninguna definición anterior. De este modo se garantiza que el identificador no esté definido. El reemplazo de macros no se realiza en instrucciones #undef.

La directiva #undef se empareja normalmente con una directiva #define para crear una región en un programa de origen en el que un identificador tiene un significado especial. Por ejemplo, una función específica del programa de origen puede utilizar constantes de manifiesto para definir valores específicos del entorno que no afecten al resto del programa. La directiva #undef también funciona con la directiva #if para controlar la compilación condicional del programa de origen. Para obtener más información, consulte las directivas #if, #elif, #else y #endif.

En el ejemplo siguiente, la directiva #undef quita las definiciones de una constante simbólica y una macro. Observe que solo se proporciona el identificador de la macro.

#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD

Específicos de Microsoft

Las macros pueden no definirse desde la línea de comandos mediante la opción /U seguida de los nombres de las macros que no se definen. El efecto de emitir este comando equivale a una secuencia de instrucciones #undefmacro-name al principio del archivo.

FIN de Específicos de Microsoft

Consulte también

Directivas de preprocesador