Diretiva #undef (C/C++)

Remove (não define) um nome criado anteriormente com #define.

Sintaxe

#undefidentifier

Comentários

A política #undef remove a definição atual do identificador. Consequentemente, as ocorrências subsequentes do identificador serão ignoradas pelo pré-processador. Para remover uma definição de macro usando #undef, especifique apenas o identificador da macro, não uma lista de parâmetros.

Você também pode aplicar a diretiva de #undef a um identificador que não tem nenhuma definição anterior. Isso garante que o identificador seja indefinido. A substituição de macro não é executada nas instruções #undef.

A diretiva de #undef é emparelhada normalmente com uma diretiva de #define para criar uma região em um programa de origem no qual um identificador tem um significado especial. Por exemplo, uma função específica do programa de origem pode usar constantes manifestas para definir os valores específicos que não afetam o restante do programa. A diretiva de #undef também funciona com a diretiva de #if para controlar a compilação condicional do programa de origem. Para obter mais informações, consulte O #if, o #elif, o #else e as diretivas de #endif para obter mais informações.

No exemplo a seguir, a diretiva de #undef remove as definições de uma constante de token e de uma macro. Somente o identificador de macro será fornecido.

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

Seção específica da Microsoft

Macros podem ser definidas a partir da linha de comando usando a opção /U, seguida dos nomes de macros a serem definidos. O efeito de emitir esse comando é equivalente a uma sequência de instruções #undefmacro-name no início do arquivo.

Fim da seção específica da Microsoft

Confira também

Diretivas de pré-processador