#ifndef/#define/#endif使用详解
来源:互联网 发布:中国最牛的程序员 编辑:程序博客网 时间:2024/06/05 07:11
“头文件中的 #ifndef/#define/#endif 防止该头文件被重复引用”。但是是否能理解“被重复引用”是什么意思?是不能在不同的两个文件中使用include来包含这个头文件吗?如果头文件被重复引用了,会产生什么后果?是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码?
其实“被重复引用”是指一个头文件在同一个cpp文件中被include了多次,这种错误常常是由于include嵌套造成的。比如:存在a.h文件#include “c.h”而此时b.cpp文件导入了#include “a.h” 和#include “c.h”此时就会造成c.h重复引用。
头文件被重复引用引起的后果:
有些头文件重复引用只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些,但是对于大工程而言编译效率低下那将是一件多么痛苦的事情。
有些头文件重复包含,会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的)这种会引起重复定义。声明冲突
是不是所有的头文件中都要加入#ifndef/#define/#endif 这些代码?
答案:不是一定要加,但是不管怎样,用ifnde xxx #define xxx#endif或者其他方式避免头文件重复包含,只有好处没有坏处。个人觉得培养一个好的编程习惯是学习编程的一个重要分支。
下面给一个#ifndef/#define/#endif的格式:
//#ifndef A_H意思是"if not define a.h" 如果不存在a.h //接着的语句应该#define A_H 就引入a.h //最后一句应该写#endif 否则不需要引入
阅读全文
0 0
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- #ifndef/#define/#endif使用详解
- Mac缓存清理软件谁更受欢迎
- 关于Java Web的<s:select>在编辑页面自动填值的问题
- 探索 ES8 Object.entries()
- Physically Based Deformable Models in Computer Graphics
- 字符串的运算符重载(如:赋值‘=’、加'+'、加等'+='、下标'[]'相等'=='、不等'!='、大于'>'、输出运算符'<<'以及类型转换)
- #ifndef/#define/#endif使用详解
- Oracle行列互换 横表和纵表
- SpringMVC访问不到静态资源的几种解决方法!
- Android多渠道(平台)打包
- python2.7 TK界面邮件发送(支持中文)
- 第8节-Linux增加、修改、删除、查看用户及组
- JAVA中URL传递中文参数,\%解析 取值是乱码的解决办法
- Android Studio
- 部署在本地的项目实现公网访问--基于Localtunnel实现内网穿透