I've only skimmed through it in the past, but check out http://www.freetechbooks.com/object-oriented-programming-with-ansi-c-t551.html (free and legal download). It does a lot of preprocessing on the code.
Something you might be interested in, as I think it's at least peripherally related is the cfront system that converted C++ to C (see http://en.wikipedia.org/wiki/Cfront) for compilation in the early years of C++.