c语言中关于头文件重复包含

1、如果头文件A包含头文件C,同时头文件B也包含头文件C,而写的程序中包含了头文件A,头文件B,然后在编译的时候就会出现头文件C重复包含的错误
这个错误 只要在自己写的头文件中这样写 
#ifndef X   //X为你的标识符,保持唯一,可以长点,比如 #ifndef _INCLUDE_XXXXXX_H_
#define X

//这里是你的头文件

#endif

上面的X可以随便取名(可以用来“装”头文件,所以X一般取名为大写的头文件的名字,只不过把"."换成“_”),只要保证#ifndef和#define后面是同一个X就可以了,只是一个标识而已。翻译成中文就是,如果已经#define X了,后面的就不执行了。这样在同一个c文件中,保证可以只#include一个头文件,避免“在同一个c文件中对一个头文件include两次”的错误(第一次包含了该头文件后,就已经#define 了一次X,第二次包含时会遇到“#ifndef X”的判断,既然已经定义,只好对这个判断说yes了,后面的不再执行,
头文件就不会再加进去)。

2、写的代码里, 头文件A需要包含头文件B,头文件B需要包含头文件C,这种情况#include A就没有问题,不会出现重复包含的错误

注意:这里的#ifndef预处理是要解决在同一个c文件中包含了两次同一个头文件的错误,而在不同的c文件中是可以包含同一个头文件的。



如果不用#ifndef来对头文件做标记,又想“一劳永逸”地解决问题,不需要担心重复包含,则就要形成自觉,不要在头文件里定义变量或函数,只声明,这样多次include这个头文件时包含的都是声明,就没有问题,因此c语言里是允许多次声明同一个函数或变量的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值