关于头文件
1. 程序可以分为三部分:
- 头文件:包含结构声明和使用这些结构的函数的原型
- 源代码文件:包含与结构有关的函数的代码
- 源代码文件:包含调用与结构相关的函数的代码
2. 头文件中常包含的内容:
- 函数原型(声明)
- 使用#define或const定义的符号常量(被声明为const的数据为内部链接)
- 结构声明
- 类声明
- 模板声明
- 内联声明(一个程序中可以有个源文件包含同一个内联函数定义)
3. #include
- #include<> 用于包含标准头文件,例如:#include<iostream> 因为<>使得C++编译器在存储标准头文件的主机系统的文件系统中查找(或其他目录)
- #include"" 用于包含自己定义的头文件 如果文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录。若未找到,则在标准位置查找
4. 包含头文件需遵循的原则
在同一个文件中只能将同一个头文件包含一次。
大多数标准C或C++头文件使用以下防护方案。否则,可能在一个文件中定义同一个结构两次,将导致编译错误
coordin.h #ifndef COORDIN_H_ #define COORDIN_H_ .... #endif
5. 关于链接
将源代码和头文件一起编译和链接,可以生成一个可执行文件。
C++标准使用了术语翻译单元,而不是文件。也就是,两个编译器将为同一个函数生成不同的修饰名称,名称不同使链接器无法将一个编译器生成的函数与另一个编译器生成的函数定义匹配。所以在链接编译模块时,需要保证所有对象文件或库都是由同一个编译器生成的,否则,会出现链接错误。