【小错误,大麻烦】头文件中的#ifndef

最近在工作过程中遇到了一个编译问题,提示功能函数没有声明,但是检查了多次,确认这些功能函数都声明过了。

我开始使用排除法,首先编译顺序,在Makefile中编译顺序没有问题,排除;

之后检查头文件中函数的声明,没问题,排除;

再来是头文件的包含,也没问题,排除;

接下来检查头文件顺序,也没问题,排除;

这时候我迷茫了,为什么呢?

在我一筹莫展的时候,我突然发现了一个怀疑点,有两个头文件的#ifndef是一样的!!!

然后一切都明朗了,原因找到了,就是因为在不同的头文件中使用了相同的#ifndef,并且声明函数的头文件在第二顺位引用导致的。

在头文件中#ifndef的作用就是防止重复引用的

这个错误是一个比较低级的错误,原因是公司有特定的编码规范,头文件有一定的格式,当时犯懒就复制了一份来写新的头文件,忘记了修改#ifndef,导致这么个错误。

这是个教训,同时也深化了对于#ifndef的重视,引以为戒,大家共勉。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值