Is there a way to loop through all the included/defined header files and then #undef
them all?
If looping is the issue, is there another way to #undef
all of them with ease?
GNU cpp provides a -dM directive to do exactly that, you can list all the defines:
gcc -E -dM -c foo.c
You can then use a sed script to undef them on command line :)
gcc -E -c foo.c | sed 's/#define/#undef/'
or do whatever...
have fun :)