#ifndef #define 中的头文件名为什么是__xxx_h

这样定义是为了避免重复定义。重复声明可以,但是重复定义是不可以的。

重复声明只要名称完全相同即可。但是重复定义会出现编译错误的,即使同名也不可以。

多次包含可能会引来重复定义。比如a.h中包含了b.h和c.h,而c.h包含了b.h,那么编译

a.h时,b.h被编译了2遍。我们熟知b.h头文件中有FILE类型的定义,于是FILE被定义了2遍

在b.h头文件中用

#ifndef   __b_h

#define  __b_h

//...头文件体

#endif

包含住头文件体的内容,在第一次包含__b_h时,__b_h未定义,此时定义__b_h,在第二次包含时,

__b_h已定义,#ifndef   __b_h为false,头文件体

#define  __b_h

//...头文件体

#endif

之间的内容会被丢弃。因此避免了重复包含头文件体的内容而重复定义。
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值