Direttiva #undef
Direttiva del preprocessore che rimuove la definizione corrente di una costante o di una macro definita in precedenza utilizzando la direttiva #define .
identificatore #undef |
---|
Parametri
Elemento | Descrizione |
---|---|
Identificatore |
Identificatore della costante o della macro di cui rimuovere la definizione. Se non si definisce una macro, specificare solo l'identificatore, non l'elenco di parametri. |
Commenti
È possibile applicare la direttiva #undef a un identificatore che non ha una definizione precedente; in questo modo si garantisce che l'identificatore non sia definito. La sostituzione delle macro non viene eseguita all'interno di istruzioni #undef.
La direttiva #undef viene in genere associata a una direttiva #define 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 compilazione condizionale del programma di origine.
Le costanti e le macro possono essere non definite dalla riga di comando usando l'opzione /U, seguite dagli identificatori da non definire. Equivale all'aggiunta di una sequenza di direttive #undef all'inizio del file di origine.
Esempio
Nell'esempio seguente viene illustrato come utilizzare la direttiva #undef per rimuovere le definizioni di una costante simbolica e di una macro.
#define WIDTH 80
#define ADD( X, Y ) (X) + (Y)
#undef WIDTH
#undef ADD