C预处理器语句是否是C语言的一部分?

Vil*_*ray 4 c standards c99 c-preprocessor

我记得我的一位教授在C门课程中提出的主张.他说,#define预处理命令使程序员能够创建在以后的代码使用一个常数,该命令是一个C语言的一部分.

/* Is this truly C code? */
#define FOO 42
Run Code Online (Sandbox Code Playgroud)

由于这是一个介绍性的编程类,我怀疑他只是简化了源文件和编译器之间的关系,但是我希望验证我的理解.

预处理程序语句是否完全独立于C语言(取决于所使用的特定编译器)还是在C99标准中明确描述?出于好奇,K&R曾经提到过预处理器宏吗?

unw*_*ind 8

是的,该标准描述了预处理器.它是C语言的标准化部分.

注意#include,这对于代码的模块化是必不可少的,是预处理器指令.

公开可用的C99标准草案中,预处理器在6.10节中描述.