c 中编译阶段和翻译阶段之间的关系

问题描述 投票:0回答:1

C 编程中编译阶段和翻译阶段之间的关系是什么?我们可以根据编译阶段对翻译阶段进行分类吗?谁能解释一下这个吗?

c compilation translation
1个回答
0
投票

C 标准定义了翻译的八个阶段:

  1. 物理源多字节字符和三字符序列映射到源字符集的字符。

  2. 每个反斜杠后跟换行符都会被删除(将两行拼接在一起)。

  3. 源字符被分组为预处理标记,每个空白字符序列都被一个空格替换,但保留换行符。

  4. 执行预处理指令和_Pragma运算符,并扩展宏调用。

  5. 字符串中的源字符和字符常量被转换为执行字符集。

  6. 相邻的字符串文字被连接起来。

  7. 每个预处理标记都会转换为语法标记,并且丢弃由空格字符分隔的标记。对生成的令牌进行分析和翻译(编译)。

  8. 所有外部引用均已解析(程序已链接)。

阶段 1 至 6 通常被视为初步或“预处理”。编译的实质性工作在第 7 阶段,“对生成的令牌进行分析和翻译(编译)。”

© www.soinside.com 2019 - 2024. All rights reserved.