头文件被重复包含有什么坏处?头文件被循环包含有什么坏处?

头文件被重复包含有什么坏处?头文件被循环包含有什么坏处?,第1张

有些头文件重复包含只是增加了编译工作的工作量,不会引起太大的问题,仅仅是编译效率低一些

有些头文件重复包含,会引起错误,比如在头文件中定义了全局变量(虽然这种方式不被推荐,但确实是C规范允许的)

如果头文件被循环包含的话,那就看你的编译器了

有的会智能处理,和只include一次一样

有的会报错

有的干脆死锁,导致编译程序崩溃(这个 只有很低级的编译器才会出 现在几乎看不到了)

不管怎样,用ifnde xxx #define xxx或者其他方式避免头文件重复包含,只有好处 没有坏处

是一个很好的习惯

这不是重复包含的问题。

发生冲突的是变量。头文件里提供变量的声明就行,定义放在cpp文件里。比如int stuNum = 0

你把这句写在main.cpp里,然后在main.h里加上extern int stuNum;

带上初始化的只能是定义,所以引用了两次头文件之后,就产生了两个定义,就会导致符号冲突。

#ifdef XX

。。。。

#endif

的意思是如果定义了XX那么执行中间的部分,如果把#ifdef换成#ifndef就是如果没定义XX,那么执行中间的部分。

至于用处,一方面可以防止头文件被重复包含;另一方面在调试程序时可以用到。比如在开头

#define test

然后在代码中插入调试语句时

#ifdef test

。。。

#endif

这样在调试结束可以把去除test的定义,这样调试语句就不起作用了,而不用删除代码或者加注释


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/tougao/12110544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存