#ifdef e #ifndef diretivas (C/C++)

As #ifdef diretivas do pré-processador e #ifndef têm o mesmo efeito que a #if diretiva quando é usada com o defined operador.

Syntax

#ifdef identifier
#ifndef identifier

Estas diretivas são equivalentes a:

#if defined identifier
#if !defined identifier

Remarks

Podes usar as #ifdef diretivas e #ifndef em qualquer lugar #if que possam ser usadas. A #ifdefidentifier afirmação é equivalente a #if 1 quando identifier foi definido. É equivalente a #if 0 quando identifier não foi definido, ou não foi definido pela #undef diretiva. Estas diretivas verificam apenas a presença ou ausência de identificadores definidos com #define, e não identificadores declarados no código-fonte em C ou C++.

Estas diretivas são fornecidas apenas para compatibilidade com versões anteriores da linguagem. A defined(identifier) expressão constante usada com a #if diretiva é preferida.

A #ifndef diretiva verifica o oposto da condição verificada por #ifdef. Se o identificador não foi definido, ou se a sua definição foi removida com #undef, a condição é verdadeira (não nula). Caso contrário, a condição é falsa (0).

Específico da Microsoft

O identificador pode ser passado a partir da linha de comandos usando a /D opção. Podem ser especificados até 30 macros com /D.

A #ifdef diretiva é útil para verificar se existe uma definição, porque uma definição pode ser passada a partir da linha de comandos. Por exemplo:

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

END Específico da Microsoft

Ver também

Diretivas de pré-processador