Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le #ifdef direttive del preprocessore e #ifndef hanno lo stesso effetto della #if direttiva quando viene usata con l'operatore defined .
Sintassi
#ifdefidentifier
#ifndefidentifier
Queste direttive sono equivalenti a:
#if definedidentifier
#if !definedidentifier
Osservazioni:
È possibile usare le #ifdef direttive e #ifndef ovunque #if sia possibile usare. L'istruzione #ifdef identifier equivale a #if 1 quando identifier è stata definita. Equivale a #if 0 quando identifier non è stato definito o non è stato definito dalla #undef direttiva . Queste direttive controllano solo la presenza o l'assenza di identificatori definiti con #define, non di identificatori dichiarati nel codice sorgente in C o C++.
Queste direttive sono fornite solo per compatibilità con le versioni precedenti del linguaggio. L'espressione defined( ) identifier costante utilizzata con la #if direttiva è preferibile.
La #ifndef direttiva controlla l'opposto della condizione controllata da #ifdef. Se l'identificatore non è stato definito o se la relativa definizione è stata rimossa con #undef, la condizione è true (diverso da zero). In caso contrario, la condizione è false (0).
Sezione specifica Microsoft
L'identificatore può essere passato dalla riga di comando usando l'opzione /D . È possibile specificare fino a 30 macro con /D.
La #ifdef direttiva è utile per verificare se esiste una definizione, perché è possibile passare una definizione dalla riga di comando. Ad esempio:
// ifdef_ifndef.CPP
// compile with: /Dtest /c
#ifndef test
#define final
#endif
Fine sezione specifica Microsoft