I\'m trying to make this work (in GCC 4.6) without barking at me.
#define FOO \"\" #define BAR \"\" #if .... #define FOO \"Foo, good sir\" #endif #if
Try using #undef:
#undef
#define FOO "" #if .... #undef FOO #define FOO "Foo, good sir" #endif