Is it possible to look at a c/c++ file before preprocessing? Or rather after just a half-hearted pre-processing? Basically there is a
#define <commonly_used_word> 0
in a third party library header and I want to figure out where it is. So basically, I just want the compiler to include all the headers but not the the preprocessor as such.
Your original source file is file before preprocessing.
It sounds like you want your
#includedirectives processed, yet you want to keep macros non-substituted. Both actions are carried out by the preprocessor.In general case it is impossible, since in C and C++ it is legal to use macros as include file names, as in
Achieving what you want would require a preprocessor specifically designed to satisfy your request. I, for one, don’t know of any such preprocessor implementation.
If you want to find where a specific macro is defined, you might try the following trick: define your own macro with the same name before including any headers, and start compilation. The compiler (the preprocessor) should complain about macro redefinition when it encounters the library definition of the same macro and point out its location to you.