头文件被重复包含的危害及解决办法

头文件被重复包含的危害

1.简单的理解:

无非就是头文件里有一行
int a=1;
包含两次就变成了
int a=1;
int a=1;
于是变量重复定义,报错
类,函数同理

而当你写成
#ifndef XXX #define XXX
int a=1;
#endif

包含两次就是
#ifndef XXX #define XXX
int a=1;
#endif
#ifndef XXX #define XXX
int a=1;
#endif
第一次中,由于没有定义XXX,所以做了两件事,定义XXX,然后int a;
第二次中,由于已经定义XXX,所以啥都不做

pragma once是上述方式的简写,好处是再也不会有两个头文件因为使用了同样的XXX而被忽略了

2.老流氓的理解:

你用过的套套肯定不会翻过来再用一遍

3.复杂的情况:

从概念上讲,头文件的功能是一般用来进行申明的(等函数原型或变量引用,宏定义)。C文件是用来进行定义的(函数定义、变量定义)。#include 是在编译器进行编译之前,即在预编译时把它后面所写的那个文件的内容,完完整整地、 一字不改地包含到当前的文件中来。
实际上C文件中是C语言的源代码,H头文件里也是C语言的源代码,所有符合C语言语法的代码都可以写在H头文件或C文件中。H头文件可以用INCLUDE,C文件也可以用INCLUDE。
(注意:C文件一般不建议使用INCLUDE,因为有的编译器在检查文件依赖性时,当INCLUDE的C文件变化时,不会重新编译C文件。)
1、C文件和H文件都是C语言的源代码,C语言语法中对于变量和函数是不能重复定义的,当C文件或H文件中的源代码中有相关内容时,重复包含会导致编译出错。
2、如果严格的遵守要求,H头文件中全是申明,重复包含不会有什么问题的。
3、规范的按照C文件和H头文件的用法来编码,尽量避免头文件重复包含,避免包含C文件,这样的好处是,代码规范,不易出错,易维护、可读性强、可移植性好。

解决办法:

这里写图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值