In another question, I just spotted this little pearl of C wisdom:
#define for if (false) {} else for
which caused MSVC to
Because the msvc compiler incorrectly handles the scope of variables declared in the for statement by default. To avoid this behaviour, you had to turn off microsoft extensions which then made the ms headers not compile.
I use (yes, i still use vs6) a different one which does not cause the warning in vs6, although the Intel compiler still spots it.
#define for switch(0) case 0: default: for
I can't remember where I got it from, but I doubt that I invented it ;-)
I know the other answers already say most of this, but the pop-up says to make sure that you answer the question.