With the # undef a macro can be overridden.
Status “defined” or “undefined” is an important characteristic of an identifier, regardless of its actual definition.
The # ifdef and # ifndef can be used to check whether an identifier is currently defined or not.
Syntax
#undef macro_name
#include <stdio.h> int main(void) { #define TESTDEFINE 1 printf("%d\n", TESTDEFINE); #undef TESTDEFINE #define TESTDEFINE 42 printf("%d\n", TESTDEFINE); return 0; }
1 42