Oracle® Solaris Studio 12.4:C 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.4.2 旧 C 转换阶段

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

预处理程序中的标记化过程是经常性操作,宏替换以基于字符的操作而不是基于标记的操作形式完成。因此,标记和空格的作用在预处理期间会有很大不同。

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