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

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

Sintaxe

#ifdef identifier
#ifndef identifier

Essas diretivas são equivalentes a:

#if defined identifier
#if !defined identifier

Observações

Você pode usar as diretivas e #ifndef em #ifdef qualquer lugar #if pode ser usado. A #ifdefidentifier instrução é equivalente a #if 1 quando identifier foi definida. É equivalente a #if 0 quando identifier não foi definido ou foi indefinido pela #undef diretiva. Essas diretivas verificam apenas a presença ou ausência de identificadores definidos, #definenão para identificadores declarados no código-fonte C ou C++.

Essas diretivas são fornecidas apenas para compatibilidade com versões anteriores do idioma. A defined(identifier) expressão constante usada com a #if diretiva é preferencial.

A #ifndef diretiva verifica o oposto da condição verificada por #ifdef. Se o identificador não tiver sido definido ou se sua definição tiver sido removida, #undefa condição será verdadeira (diferente de zero). Caso contrário, a condição será falsa (0).

Seção específica da Microsoft

O identificador pode ser passado da linha de comando usando a opção /D . Até 30 macros podem ser especificadas com /D.

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

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

Fim da seção específica da Microsoft

Consulte também

Diretivas de pré-processador