How do I see a C/C++ source file after preprocessing in Visual Studio?


Question

Let's say I have a source file with many preprocessor directives. Is it possible to see how it looks after the preprocessor is done with it?

1
200
2/4/2016 8:21:45 PM

Accepted Answer

cl.exe, the command line interface to Microsoft Visual C++, has three different options for outputting the preprocessed file (hence the inconsistency in the previous responses about Visual C++):

If you want to preprocess to a file without #line directives, combine the /P and /EP options.

144
6/19/2016 5:55:18 PM

Most compilers have an option to just run the preprocessor. e.g., gcc provides -E:

   -E  Stop after the preprocessing stage; do not run the compiler proper.  
       The output is in the form of preprocessed source code, which is sent
       to the standard output.

So you can just run:

gcc -E foo.c

If you can't find such an option, you can also just find the C preprocessor on your machine. It's usually called cpp and is probably already in your path. Invoke it like this:

cpp foo.c

If there are headers you need to include from other directories , you can pass -I/path/to/include/dir to either of these, just as you would with a regular compile.

For Windows, I'll leave it to other posters to provide answers as I'm no expert there.


Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon