首页 > 其他 > 详细

头文件互相包含

时间:2019-03-19 15:58:20      阅读:120      评论:0      收藏:0      [点我收藏+]

上两节讲的是头文件的重复包含,重复包含是:在主文件 main中 可能会包含多个自己写的头文件,这些个头文件中又变相的(间接的)包含了其他的头文件,导致某一个c.h 在纯纯的替换之后,在主文件上面出现了多次,结果造成了重复包含,从而导致重定义这种错误。

互相包含:

假如有一个c.h和d.h 两个头文件。c.h里面想用d.h里面的东西,d.h里面也想用c.h里面的东西(那么c.h中要#include"d.h",d.h中要#include"c.h")这就形成了一种互相包含。

这样的一种关系会产生什么副作用?!——————和之前的重复包含产生的问题就不太一样了!

技术分享图片

技术分享图片

变成了

技术分享图片

发现e3.h包含了自己,既然是头文件,系统就要处理(复制替换)

继续替换

技术分享图片

结果就是无限死循环。

所以头文件重复包含和头文件互相包含呈现的最终的问题是不一样的。

重复包含导致的结果就是重定义

互相包含导致的结果是一种死循环的状态,编译器直接就报错!

如何处理互相包含这种引发的问题?? ——————处理方法和处理重复包含时候的方法一样!
技术分享图片

技术分享图片

 

头文件互相包含

原文:https://www.cnblogs.com/dabing0983/p/10559038.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!