Here is a version of (ifl:)UCPP which I've hacked. (Or rather it would be here. I'm talking to my employers about that.)
From the UCPP page:
ucpp is a C preprocessor and lexer. It has the following goals:
Some of the hacks that I've made to it:
Some example output from -d -KSTRICT:
C:\Program Files\Microsoft Visual Studio\VC98\Include\windef.h: 14: #ifndef STRICT /* true */ C:\Program Files\Microsoft Visual Studio\VC98\Include\windef.h: 15: #define STRICT 1 C:\Program Files\Microsoft Visual Studio\VC98\Include\winnt.h: 206: #ifdef STRICT /* true */
Well, that's it for the moment. UCPP seems like a Good Thing to me.