C++语言基础入门
1. 编译步骤
C++程序从源代码到可执行程序的过程涉及多个阶段的转换。首先,编译器会处理所有的 #include
和条件预处理指令,生成所谓的“翻译单元”。翻译单元的重要特点是它们不依赖其他文件,从而保证了每个源文件的独立性。尽管程序员习惯上称之为“源文件”,但在编译过程中,它们实际上是翻译单元。
编译过程大致分为以下几个步骤:
- 字符读取与转换 :从源文件中读取物理字符,并将其转换为源字符集。源文件不一定是指物理文件,例如可以从数据库中检索源代码。三字符序列(如
??=
)被简化为其等效字符,每个原生行尾字符或字符序列被替换为换行符。 - 去除反斜杠换行 :如果反斜杠后面紧跟着一个换行符,则删除这两个字符。这种组合不能出现在通用字符的中间,也不能位于文件末尾。它可以用于字符或字符串字面量、预处理器指令或多行注释。
- 分割为预处理器标记 :将源代码分割成由空白字符和注释分隔的预处理器标记。预处理器标记可以是头文件名、标识符、数字、字符字面量、字符串字面量、符号或杂项字符。
- 预处理与宏展开 :进行预处理并扩展宏。所有
#include
文件同样会经过这四个步骤的处理。更多信息可以参考预处理器相关内容。 - 字符集转换 :将字符和字符串字面量转换为执行字符集。