C 编译器支持生成扩展名为
.i
的预处理器输出文件。他们通常使用编译器开关
-E
或 -P
来实现此目的。-C
来保留注释。
预处理器文件的创建是 ANSI-C 中的标准,还是该编译器特定的?
选项
-C
也是标准吗?
编辑:
更准确地说:这是关于创建
.i
文件的支持,而不是编译器开关语法或名称。
ISO C 标准中未标准化。
然而,大多数编译器似乎都有
-E
用于生成 prepro 输出。这是合理的,因为 prepro 输出通常对于调试非常有用。
这是我检查过的编译器列表:
所有这些编译器都允许将 prepro 输出写入任何文件(具有任何扩展名)。
.i
绝对不是标准的。
保留评论的选项
-C
似乎相当具体。
C 编程语言标准没有指定任何有关如何调用编译器的信息。
这可能是一个“临时”标准,但它不是以任何官方方式“全球”控制的东西。有一些本地标准,例如 POSIX 可以指定此类内容,但这当然不包括为非 POSIX 环境实现的编译器。