#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
平常用的比较多的就是插入头文件,include包含头文件的方式有如下几种:
1、#include这种方式下,预处理器通常只会去系统指定目录下查找。如果需要包含标准库头文件或者实现版本所提供的头文件,可以使用这种方式。
2、#include"xxx.h"
这种方式下,预处理器通常优先在当前目录下寻找,即当前工程下的其他源文件的目录。如果在当前目录下没有找到,那么预处理器也会搜索系统的 include 路径。如果需要包含针对程序所开发的源文件,则可用这种方式。
3、#include"xx\xx.h"
文件名中包含了路径,则预处理器只会到该目录下寻找。例如:
.\SRC\ 这样写表示,当前目录中的SRC文件夹;
…\SRC\ 这样写表示,当前目录的上一层目录中SRC文件夹;
这种相对路径的写法,编译器会自动帮我们转化为绝对路径。
#include 命令可以嵌套使用;也就是说,通过 #include 命令插入的源文件本身也可以包含另一个 #include 命令。预处理器最多允许 15 层的嵌套包含。
因为头文件有时候会包含另一个头文件,很容易发生相同的一个文件被多次包含的情况。为避免这种情况的发生,可以采用条件式编译的命令,如下:
#ifndef XXX_H_
#define XXX_H_
/* ...实际的头文件XXX.h的内容写在这里... */
#endif