-E

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-E
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

输出控制

等效编译指示

无。

用途

在不编译的情况下预处理在编译器调用中指定的源文件。

语法

读取语法图跳过可视语法图  -E

缺省值

默认情况下,源文件经过预处理、编译和链接以生成可执行文件。

使用量

具有无法识别的文件名后缀的源文件将作为 C 文件进行处理和预处理。

除非指定了 -C ,否则将在预处理的输出中使用单个空格字符替换注释。 为跨越多行源代码的注释发出换行和 #line 指令。

-E 选项将覆盖 -P-o和-qsyntaxonly 选项。 基于 Clang 的前端开始 -E -o 的组合将预处理结果存储在 指定的文件中。 -o基于 Clang 的前端端

预定义的宏

无。

示例

如果 myprogram.c 具有代码段,例如:
#define SUM(x,y) (x + y) 
int a ;
#define mm 1   /* This is a comment in a
                  preprocessor directive */
int b ;        /* This is another comment across
                  two lines */
int c ;
               /* Another comment */
c = SUM(a,b) ;  /* Comment in a macro function argument*/
要编译 myprogram.c 并将预处理的源发送到标准输出,请输入:
xlc myprogram.c -E

除非指定了 -qnoppline ,否则将生成 #line 伪指令以保留令牌的源坐标。 延续序列被保留。

输出将为:
#line 2 "myprogram.c"
int a ;
#line 5
int b ;

int c ;

c = a + b ;
如果使用基于 Clang 的前端和以下命令进行编译:
xlclang myprogram.c -E
输出为:

int a ;

int b ;

int c ;

c = a + b ; 

相关信息