一、include
- include<>:去系统文件中查找标准文件
- include"":先从工作目录中查询,再去系统文件查询
二、编译过程(unix)
假设有两个源文件,file1.cpp file2.cpp,整个编译过程是这样的
- 首先处理#include文件,用头文件的源代码直接替换掉对应位置内容,得到两个临时文件tmp1.cpp, tmp2.cpp,注意这个时候依然是文本文件
- 编译器分别编译两个文件得到目标文件(object file)file1.o, file2.o
- Linker将两个目标代码文件与库代码和启动代码组合,以生成可执行文件a.out
三、头文件编写
包含内容
- 函数原型
- #define 和const 定义的符号常量
- 结构体声明(并没有定义一个结构体,只是告诉编译器如何构造结构体)
- 类声明
- 模板声明
- 内联函数
ifndef
#ifndef COORDIN_H_
#define COORDIN_H_
// place include file contents here
#endif
避免#include的时候包含同一个头文件多次编译器处理多次导致出错
Note that this method doesn’t keep the co