C预处理指令是否属于C编程语言?

时间:2017-08-10 22:06:31

标签: c c-preprocessor

C预处理指令是否属于C编程语言?

我认为它们不是因为它们是由C预处理器而不是实际的C编译器处理的。

感谢。

2 个答案:

答案 0 :(得分:1)

是的,但只是在C99(或更高版本)C标准第6.10节中讨论过。该标准(可能是有意)模糊了预处理器,只讨论它应该做的事情,而不是定义可能必须的事物列表em> do。

您是否可以为没有预处理器的标准C创建编译器?当然,尽管使用库会非常不方便。

答案 1 :(得分:1)

C标准精确定义了预处理阶段的行为。所以它绝对是C语言的一部分。

实现为正常处理,编译和链接提供单独的二进制文件是正常的。标准以这样的方式编写,即每个转换阶段可以由单独的可执行文件执行。但这不是一个要求。实际上,大多数编译器也允许通过单个命令完成所有这些操作(例如gcc foo.c bar.c)。