Share via


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 #undefistruzioni macro-name all'inizio del file.

Fine sezione specifica Microsoft

Vedi anche

Direttive del preprocessore