Sun Studio 12:C 用户指南

6.5.2 旧 C 转换阶段

以前的 C 编译器不执行如此简单的阶段序列,也不保证何时应用这些步骤。独立预处理程序识别标记和空白的时间基本上与它替换宏和处理指令行的时间相同。然后输出由适当的编译器完全重新标记化,接着编辑器分析语言并生成代码。

由于预处理程序中标记化进程的操作时间很短,且宏替换是作为基于字符(而不是基于标记)的操作执行的,因此在预处理过程中标记和空白可能会发生很大的变化。

这两种方法存在很多差异。本节其余部分讨论代码行为如何因宏替换过程中发生的行拼接、宏替换、字符串化以及标记粘贴而更改。