#ifndef __xxx_H
#define __xxx_H
#endif
这种格式的定义
多次被include只是会重复编译某个头文件,浪费时间
使用这种#ifndef #define #endif的意思就是,如果没进来编译过这个头文件,则往下执行,编译它,并define这个标志,后面再遇到别的源文件有include这个头文件,就不会重新编译
这是说:每次调用这个头文件,会判断
1.如果没有定义 __xxx.H 标志
2.就定义这个标志
3.添加头文件内容
4.结束
如果定义了__xxx.H就直接退出,保证不会多次添加头文件
#endif
首先上面这些内容是条件编译,ifndef就是if not define,也就是未定义__xxx_H这个变量的时候,编译器会自动向下编译,这个时候define这条指令就定义了__xxx_H这个量。再另外一个文件重复包含此文件的时候,编译器发现已经定义过__xxx_H这个量了,编译器在编译的时候就会直接跳过这个文件,需要里面的内容的时候就去前面已经编译过的里面查找,链接。