direttiva #undef (C/C++)
Rimuove (rimuove la definizione) un nome creato in precedenza con #define
.
Sintassi
identificatore #undef
Osservazioni:
La direttiva #undef rimuove la definizione corrente dell'identificatore. Di conseguenza, le occorrenze successive dell'identificatore vengono ignorate dal preprocessore. Per rimuovere una definizione di macro utilizzando #undef, assegnare solo l'identificatore di macro, non un elenco di parametri.
È anche possibile applicare la direttiva #undef a un identificatore che non ha una definizione precedente. Questo assicura che l'identificatore rimanga non definito. La sostituzione delle macro non viene eseguita all'interno di istruzioni #undef .
La direttiva #undef viene in genere associata a una #define
direttiva per creare un'area in un programma di origine in cui un identificatore ha un significato speciale. Ad esempio, una funzione specifica del programma di origine può utilizzare le costanti manifesto per definire valori specifici dell'ambiente che non influiscono sul resto del programma. La direttiva #undef funziona anche con la direttiva per controllare la #if
compilazione condizionale del programma di origine. Per altre informazioni, vedere Direttive #if, #elif, #else e #endif.
Nell'esempio seguente, la direttiva #undef rimuove le definizioni di una costante simbolica e di una macro. Notare che viene specificato solo l'identificatore della macro.
#define WIDTH 80
#define ADD( X, Y ) ((X) + (Y))
.
.
.
#undef WIDTH
#undef ADD
Sezione specifica Microsoft
Le macro possono essere indefinite dalla riga di comando usando l'opzione /U
, seguite dai nomi delle macro da non definire. L'effetto dell'esecuzione di questo comando equivale a una sequenza di #undef
istruzioni macro-name all'inizio del file.
Fine sezione specifica Microsoft