/P(预处理到文件)
预处理 C 和 C++ 源文件,并将预处理的输出写入文件。
语法
/P
备注
该文件的基名称与源文件和 .i 扩展名相同。 在此过程中,将执行所有预处理器指令,执行宏扩展,并删除注释。 若要在预处理输出中保留注释,请使用 /C(在预处理期间保留注释) 选项和 /EP。
/P 将 #line
指令添加到输出中,在每个包含文件的开头和末尾,以及由预处理器指令删除的行周围,以便进行条件编译。 这些指令对预处理文件的行进行重新编号。 因此,在后续处理阶段生成的错误是指原始源文件的行号,而不是预处理文件的行号。 若要取消生成 #line
指令,请使用 /EP(在不使用 #line 指令的情况下预处理到 stdout) 和 /P。
/P 选项禁止编译。 它不会生成 .obj 文件,即使使用 /Fo(对象文件名)也是如此。 必须重新提交预处理的文件进行编译。 /P 还禁止来自 /FA、/Fa 和 /Fm 选项的输出文件。 有关详细信息,请参阅 /FA、/Fa(列表文件)和 /Fm(名称映射文件)。
在 Visual Studio 开发环境中设置此编译器选项
打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。
选择“配置属性”>“C/C++”>“预处理器”属性页。
修改 Generate Preprocessed File 属性。
以编程方式设置此编译器选项
示例
下面的命令行预处理 ADD.C
,保留注释,添加 #line
指令,并将结果写入文件 ADD.I
:
CL /P /C ADD.C