Most compilers give you some way to get a pre-processed form of your code. With gccthat gcc -C -E source.c > source.i; you must study this form. On Linux, I sometimes do:
gcc -C -E source.c | grep -v '^#' | indent > source.i
gcc -Wall -c source.i
grep -v '^#' . source.i , , .