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