#undef ( linguaggio C )
Nel linguaggio C la direttiva #undef annulla un identificatore o una macro, già definita con la direttiva #define, nella preprocessione del codice sorgente di un programma.
Sintassi
#undef [nome]
L'unico parametro della diretta è il nome della macro da rimuovere.
Esempio
La prima direttiva (#define) definisce l'identificato VERS mentre la seconda direttiva (#undef) lo annulla.
#define VERS 3
#undef VERS
La direttiva #undef può essere inserita in qualsiasi punto del codice sorgente.
Esempi pratici
Alcuni esempi pratici della direttiva #undef.
Esempio 1
Nella riga 2 la direttiva #define definisce l'identificativo VERS e gli assegna il valore 2.
Se l'identificativo VERS è minore di 3, viene annullato nella riga 6.
La preprocessione trasforma il codice sorgente nel seguente modo e lo compila.
L'output del programma è
versione non aggiornata
Esempio 2
Nella riga 2 la direttiva #define assegna il valore 4 all'identificativo VERS.
Nella struttura condizionale della riga 5 l'identificativo VERS non è minore di 3 e la preprocessione salta direttamente alla riga 8.
Quindi, in questo caso l'identificativo non viene annullato dalla direttiva #undef nella riga 6.
La preprocessione trasforma il codice sorgente nel seguente modo e poi lo compila.
L'output del programma è
versione 4