C 编译器预处理器输出

问题描述 投票:0回答:2

C 编译器支持生成扩展名为

.i
的预处理器输出文件。
据我所知,对于 Microsoft (Visual Studio)、ARM、Keil 和一些 GNU 编译器来说都是如此。

他们通常使用编译器开关

-E
-P
来实现此目的。
还有编译器开关
-C
来保留注释。

预处理器文件的创建是 ANSI-C 中的标准,还是该编译器特定的?
选项

-C
也是标准吗?

编辑:
更准确地说:这是关于创建

.i
文件的支持,而不是编译器开关语法或名称。

c c-preprocessor
2个回答
3
投票

ISO C 标准中未标准化。

然而,大多数编译器似乎都有

-E
用于生成 prepro 输出。这是合理的,因为 prepro 输出通常对于调试非常有用。

这是我检查过的编译器列表:

  • 海湾合作委员会
  • PCC
  • 叮当
  • ctc(三核)
  • 任务C166
  • 风河(戴铂)

所有这些编译器都允许将 prepro 输出写入任何文件(具有任何扩展名)。

.i
绝对不是标准的。

保留评论的选项

-C
似乎相当具体。


2
投票

C 编程语言标准没有指定任何有关如何调用编译器的信息。

这可能是一个“临时”标准,但它不是以任何官方方式“全球”控制的东西。有一些本地标准,例如 POSIX 可以指定此类内容,但这当然不包括为非 POSIX 环境实现的编译器。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.