头文件使用#ifndef#define #endif的好处及原因
2018-03-02 17:04
387 查看
宏定义 #ifndef #define #endif 最主要目的是防止头文件的重复声明和编译
引用宏定义 #ifndef
为了防止在执行时对头文件进行重复的编译和声明,虽然不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率低下将不可而语。
有些头文件重复包含,会引起错误,如果在头文件中声明了变量,则在链接时程序引用头文件会对变量重定义,而已经初始化的变量存储在全局区,程序运行时会优先使用那个已经被初始化的变量,使得程序易运行出不是我们所期望的结果。
#ifndef __TEST_H__ #denfine __TEST_H__ #endif __TEST_H__ ifndef 指示会发现TEST已经定义返回假,并且忽略该头文件的剩余部分。
引用宏定义 #ifndef
为了防止在执行时对头文件进行重复的编译和声明,虽然不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率低下将不可而语。
有些头文件重复包含,会引起错误,如果在头文件中声明了变量,则在链接时程序引用头文件会对变量重定义,而已经初始化的变量存储在全局区,程序运行时会优先使用那个已经被初始化的变量,使得程序易运行出不是我们所期望的结果。
总结: 引用#ifndef 避免头文件重复编译 避免在头文件中声明变量会引起重复定义
相关文章推荐
- 为什么在.h文件中使用#ifndef CLASS_H和#define CLASS_H?
- #ifdef、#ifndef、#define与#endif的使用
- 用#ifndef、#define、#endif避免头文件的重定义
- C++ 头文件中为何添加了#ifndef #define #endif还会出现变量重复定义的问题
- 如何避免重复包含一个文件? #ifndef、#define、#endif
- #ifndef,#define,#endif使用
- 头文件中 #ifndef---#define---#endif的作用
- #ifdef,#endif ,#ifndef,#define,#endif的使用与效果
- 头文件为什么要加#ifndef #define #endif
- #ifndef#define#endif防止头文件重复包含, 你不是真的懂
- 头文件为什么要加#ifndef #define #endif
- 头文件为什么要加#ifndef #define #endif
- 头文件为什么要加#ifndef #define #endif
- #ifndef,#define,#endif的含义和用法
- VS 2005使用map文件查找程序崩溃原因
- VS 2005使用map文件查找程序崩溃原因
- #ifndef#define#endif的用法
- #ifndef #define #endif用法
- c#中修改xml文件报文件正由另一进程使用,因此该进程无法访问该文件的可能原因
- 如何使用MAP文件找到程序崩溃的原因