Then again, as a last resort, there's always the compiler's -E option — to spit out the fully expanded C code instead of producing an object file. (But be sure to run the compiler command with the otherwise same options that it would be run during a normal build, in order to get the correct results.)
For example, from gcc's man page:
-E Stop after the preprocessing stage; do not run the compiler pr
+oper. The output is in the form
of preprocessed source code, which is sent to the standard out
+put.