#ifndef ... //检查***是否已经被定义,如果没定义,进入
#def... //定义***
code
#endif //结束
一个叫head.h的头文件,被你工程中两个源文件同时包含如:A.cpp和B.cpp。不用这个条件编译,编译时会将head.h编译两次,导致编译效率低下。
编译A.cpp的时候,编译器在预处理时知道了有HEADER_H宏,那么在编译b.cpp的时候,预处理#ifndef HEADER_H时发现条件为假,自然不去编译它了,节约了时间。