Макросы не могут переопределить другие макросы, но вы можете сделать это вручную.
#define FOO hello
FOO // expands to hello
#undef FOO
#define FOO world
FOO // expands to world
#undef FOO
#define FOO blah
FOO // expands to blah
К сожалению, комбинация #define
+ #undef
не может быть заключена в какую-либо другую структуру, о которой я знаю.