- 如果头文件中有定义(变量、函数、类),重复包含会产生重复定义的问题
- C++重复包含头文件,编译器拷贝和扫描需要耗费时间、降低效率
- 一般头文件中只放声明,而声明可以多次
格式:
#ifndef _NAME_H #define _NAME_H // 头文件内容 #endif
特点:
-
通过定义独一无二的宏来避免重复引入,意味着每次引入头文件都要重新识别,效率不高
-
C和C++都支持宏定义,不影响项目的移植性
-
既能作用于某个具体的文件,也能作用于一段代码
格式:
// 在头文件开头加上 #progma once
特点:
-
不涉及宏定义,编译效率高
-
不支持老的编译器
-
只能作用于某个具体的文件
格式:
// 在头文件开头加上
_Progma("once")
特点:
- 可以和宏搭配使用



