Diretivas #ifdef e #ifndef

Diretivas de pré-processador que determinam se uma constante ou macro de pré-processador específico é definida.

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

Parâmetros

Item Descrição
Identificador
Identificador da constante ou macro para marcar.

Comentários

Você pode usar as diretivas #ifdef e #ifndef em qualquer lugar em que a #if possa ser usada. A instrução #ifdef é equivalente à diretiva ) . Essas diretivas marcar apenas para a presença ou ausência de identificadores definidos usando a diretiva #define, não para identificadores declarados no código-fonte C ou C++.

Essas políticas são fornecidas somente para compatibilidade com versões anteriores da linguagem. O uso do operador definido com a diretiva #if é preferencial.

A política #ifndef verifica o oposto da condição verificada por #ifdef. Se o identificador não estiver definido, a condição será verdadeira (diferente de zero); caso contrário, a condição será falsa (zero).

Exemplos

O identificador pode ser passado da linha de comando usando a opção /D. Até 30 macros podem ser especificadas com /D. Isso é útil para verificar se uma definição existe, uma vez que uma definição pode ser passada da linha de comando. O exemplo a seguir usa esse comportamento para determinar se um aplicativo deve ser executado no modo de teste.

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

Quando compilado usando o comando a seguir, prog.cpp será compilado no modo de teste; caso contrário, ele será compilado no modo final.

CL.EXE /Dtest prog.cpp

Confira também

Diretivas de pré-processador (DirectX HLSL)

#if, )