1、分别编译
- 源程序首先进行预处理,预处理之后的结果被称为编译单位。
- 连接器是一个程序,它的工作就是将分别编译的部分约束在一起。
2、连接
在所有的编译单位中,对所有函数、类、模板、变量、名字空间、枚举和枚举符的名字的使用都必须保持一致。
头文件里可以包含:
- 命名名字空间
- 类型定义
- 模板声明
- 模板定义
- 函数声明
- 在线函数定义
- 数据声明
- 常量定义
- 枚举
- 名字声明
- 包含指令
- 宏定义
- 条件编译指令
- 注释
单一定义法则(One-Definition Rule,ODR)
3、使用头文件
4、程序
一个程序就是由连接器组合到一起的一组分别编译单位。
程序终止方式:
- 从main()返回
- 调用exit()
- 调用abort()
- 抛出一个未被处理的异常