#ifdef DEF_MACROS #ifdef ONE #ifdef FOO #undef FOO #endif #define FOO "hello" #else #undef FOO #endif #ifdef TWO #ifdef FOO #undef FOO #endif #define FOO " " #endif #ifdef THREE #ifdef FOO #undef FOO #endif #define FOO "world" #endif #ifdef FOUR #ifdef FOO #undef FOO #endif #define FOO(a) foo = a #endif #else int main (int argc, const char **argv) { char *foo; #define DEF_MACROS #define ONE #include "info-macros.c" foo = FOO; #define TWO #include "info-macros.c" foo = FOO; #define THREE #include "info-macros.c" foo = FOO; #undef THREE #include "info-macros.c" foo = FOO; #undef TWO #include "info-macros.c" foo = FOO; #undef ONE #include "info-macros.c" foo = (char *)0; #define FOUR #include "info-macros.c" FOO ("the end."); return 0; } #endif