C编译器支持生成扩展名为.i
的预处理器输出文件。
据我所知,Microsoft (Visual Studio)、ARM、Keil 和一些 GNU 编译器都是如此。
他们通常为此使用编译器开关 -E
或 -P
。
还有编译器开关 -C
来保留注释。
预处理器文件的创建是 ANSI-C 中的标准,还是特定于此编译器?
选项 -C
也是标准吗?
编辑:
更准确地说:这是关于支持创建 .i
文件,而不是编译器开关语法或名称。
最佳答案
它没有在 ISO C 标准中标准化。
然而,大多数编译器似乎都有 -E
用于生成预编译输出。这是合理的,因为 prepro 输出通常对调试非常有用。
这是我检查过的编译器列表:
- 海湾合作委员会
- 个人电脑
- clang
- ctc(三核)
- 任务 C166
- 风河 (戴铂)
所有这些编译器都允许将 prepro 输出写入任何文件(具有任何扩展名)。 .i
绝对不是标准的。
用于保留注释的选项 -C
似乎相当具体。
关于C 编译器预处理器输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17081405/