ERROR L104: MULTIPLE PUBLIC DEFINITIONS 重定义问题

编译器出现 ERROR L104: MULTIPLE PUBLIC DEFINITIONS 重定义问题

问题描述:在.h文件中定义数组u8 col[4]={0xfe,0xfd,0xfb,0xf7};  出现问题,将数组定义移到.c文件后错误消失

原因:比如对于一个h文件aa.h,里面有定义常量,变量。
现在有两个相对应的文件,bb.c和bb.h,如果在bb.h中写入#include "aa.h",然后在main.c文件中#include "bb.h"
这时候main.c对于include "bb.h"这语句,包好了bb.h中对于aa.h的内容,也就是包含了一次aa.h中的那些常量,变量
而bb.c这文件本身有include "bb.h",也就是造成第二次包含了aa.h中的那些常量,变量,所以提示重复定义
对于这个问题,解决的办法有一个,上边已经说了,用static能通过编译,但是有弊端,所以不好,
把#include "aa.h"这语句放到bb.c文件中,当main.c包含bb.h时就不会包含aa.h这文件造成重复,而bb.c中#include "aa.h",
所以bb.c中函数便能调用aa.h中所定义的东西。从而避免重复定义。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值