Another thing that gcc does that I wish VC++ would is that it tells you if you're missing some cases in a switch statement on an enum type.
I believe PC-lint will do that.
7. It is easier to write an incorrect program than understand a correct one.
40. There are two ways to write error-free programs; only the third one works.*