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



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

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

谢谢。

是的,但仅限于 C99(或更高版本(C 标准第 6.10 节中讨论的内容。 该标准(可能是故意的(对预处理器含糊不清,只讨论它应该做的事情,而不是定义它可能或必须做的事情列表。

你能为没有预处理器的标准 C 创建一个编译器吗? 当然,尽管使用库会非常不方便。

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

实现提供单独的二进制文件进行预处理、编译和链接是正常的。 该标准的编写方式是,每个翻译阶段都可以由单独的可执行文件执行。 但这不是必需的。 事实上,大多数编译器还允许通过单个命令完成所有这些操作(例如gcc foo.c bar.c(。

最新更新