头文件互相包含

上两节讲的是头文件的重复包含,重复包含是:在主文件 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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值