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