【发布时间】:2013-06-13 11:51:53
【问题描述】:
我记得我的一位教授在 C 入门课程中提出的主张。他表示#define 预处理器命令使程序员能够创建一个常量以供以后的代码使用,并且该命令是C 语言的一部分。
/* Is this truly C code? */
#define FOO 42
由于是编程入门课,我怀疑他只是在简化源文件和编译器之间的关系,但我还是想验证一下我的理解。
预处理器语句是完全独立于 C 语言(取决于所使用的特定编译器)还是在 C99 标准中明确描述?出于好奇,K&R 有没有提到过预处理器宏?
【问题讨论】:
-
(我有一份@denull 发现的早期草稿。)但是,在某些环境中,预处理器与编译器分开使用,并且某些语言可以间接使用它。有一个 Perl 模块可以调用 C 预处理器作为 Perl 文件的过滤器。
-
值得指出的是,“C 标准/语言”现在是 C11(这是 devnull 链接中的版本)。 C99 落后一位。当然更好的兼容性。
标签: c standards c99 c-preprocessor