【发布时间】:2013-06-13 07:22:00
【问题描述】:
C 编译器支持生成带有.i 扩展名的预处理器输出文件。
据我所知,Microsoft (Visual Studio)、ARM、Keil 和一些 GNU 编译器都是如此。
他们通常为此使用编译器开关-E 或-P。
还有编译器开关-C 来保留cmets。
预处理器文件的创建是 ANSI-C 中的标准,还是此编译器特定的?-C 选项也是标准吗?
编辑:
更准确地说:这是关于对创建 .i 文件的支持,而不是编译器切换语法或名称。
【问题讨论】:
-
目前没有编译器开关/选项的标准,也没有预处理器、编译器或链接器的任何形式的输出格式的标准。 C 标准甚至不假定您是在存在文件系统的操作系统上开发程序。一个 C 编译器产生一个颜色鲜艳的松果而不是文件的输出,仍然完全符合 C 标准。
-
@Lundin:所以预处理器输出只是编译器开发人员提供的功能?我害怕那个。
标签: c compiler-construction c-preprocessor