10.6 »#undef« – Makronamen wieder aufheben 

Um ein Makro bzw. eine symbolische Konstante, die mit #define definiert wurde, wieder aufzuheben, müssen Sie im Programm nur
#undef makroname
schreiben. Eine Makrodefinition gilt von deren Festlegung (#define) bis zum Programmende oder bis zur nächsten #undef-Direktive. Ein Beispiel:
/* undef.c */ #include <stdio.h> #include <stdlib.h> #define NUM 10 int main(void) { printf("Wert für symb. Konstante NUM: %d\n",NUM); /* 10 */ #ifdef NUM #undef NUM /* symb. Konstante aufheben */ #endif #define NUM 100 /* symb. Konstante wieder neu definieren */ printf("Wert für symb. Konstante NUM: %d\n",NUM); /* 100 */ return EXIT_SUCCESS; }
Hätten Sie die symbolische Konstante NUM vor der Neudefinition nicht mit undef aufgehoben, hätte dies eine Warnung des Compilers zur Folge.