假设我有一个带有许多预处理器指令的源文件。是否有可能看到它在预处理器完成后的样子?


当前回答

在Visual Studio中,您可以使用/P编译文件(或项目)。

其他回答

cl.exe, Microsoft Visual c++的命令行接口,有三个不同的选项来输出预处理文件(因此在前面关于Visual c++的响应中不一致):

/E:预处理到stdout(类似于GCC的-E选项) /P:预处理到文件 /EP:预处理到标准输出,不使用#line指令

如果您希望预处理到一个没有#line指令的文件,请结合/P和/EP选项。

在解决方案资源管理器上右键单击该文件,转到属性。在配置属性->C/ c++ ->预处理器下,“生成预处理文件”就是你要找的。然后在解决方案资源管理器中右键单击该文件并选择“编译”。预处理文件在输出目录(例如Release, Debug)中创建,扩展名为.i(感谢Steed的评论)。

如果您正在使用微软的c++编译器,请尝试cl /EP。

我对微软编译器一无所知,但在GCC上你可以使用这个:

gcc -E -P -o result.c my_file.h

如果你想看到注释,使用这个:

gcc -E -C -P -o result.c my_file.h

本页有更多选项。

在Windows操作系统上,这个问题的简单答案是在DOS提示符中使用以下命令查看预处理文件:

CL /P /C myprogram.c

这将生成一个名为myprogram.i的文件。打开它并查看扩展的预处理器。