Condividi tramite


Direttive del #ifndef e #ifdef (C/C++)

#ifdef e #ifndef le direttive eseguono la stessa attività di #if direttiva se utilizzata con definito( identificatore ).

#ifdef identifier
#ifndef identifier

// equivalent to
#if defined identifier
#if !defined identifier

Note

È possibile utilizzare #ifdef e #ifndef direttive ovunque #if è possibile utilizzare.#ifdef identificatore l'istruzione è equivalente a#if 1quando identificatore è stato definito e equivale a#if 0quando identificatore non è stato definito o è stato definito con #undef direttiva.Queste direttive controlla solo la presenza o l'assenza di identificatori definiti con #define, non per gli identificatori dichiarati nel codice sorgente c o C++.

Queste direttive sono fornite solo per la compatibilità con le versioni precedenti del linguaggio.definito ( identificatore ) espressione costante utilizzata con #if la direttiva è preferibile.

#ifndef controlli di direttiva per l'opposto della condizione controllata da #ifdef.Se l'identificatore non è stato definito (o la relativa definizione è stata rimossa con #undef), la condizione è true (diverso da zero).In caso contrario, la condizione è false (0).

Specifici di Microsoft

identificatore può essere passato dalla riga di comando utilizzando l'opzione /D.fino a 30 macro possono essere specificate con /D.

Ciò è utile per controllare se una definizione non esiste, perché una definizione può essere passata dalla riga di comando.Di seguito è riportato un esempio:

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

Microsoft FINALE specifico

Vedere anche

Riferimenti

Direttive per il preprocessore