-E
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -E | ✓ | ✓ | ✓ | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
无。
用途
在不编译的情况下预处理在编译器调用中指定的源文件。
语法
缺省值
默认情况下,源文件经过预处理、编译和链接以生成可执行文件。
使用量
具有无法识别的文件名后缀的源文件将作为 C 文件进行处理和预处理。
除非指定了 -C ,否则将在预处理的输出中使用单个空格字符替换注释。 为跨越多行源代码的注释发出换行和 #line 指令。
-E 选项将覆盖 -P, -o和-qsyntaxonly 选项。
-E -o 的组合将预处理结果存储在 指定的文件中。 -o
预定义的宏
无。
示例
如果
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 ;
