【iar编译出现 Error[Pe147]的一种特殊情况:函数返回值与函数声明不一致】

iar编译出现 Error[Pe147]的一种特殊情况:函数返回值与函数声明不一致

错误说明

  1. 在实现某一个函数时,定义了一个Struct MidFunT MidFun局部变量,编译正常
  2. Struct MidFunT MidFun定义为全局变量,编译时出现
  3. Error[Pe147]: declaration is incompatible with “__interwork __softfp) unsigned char MidFun(xxxxxx xxxx xxxxxx).
    大概意思是:函数返回值与头文件的函数声明不一致

错误原因

这个问题最奇怪的一点是:明明定义的是变量,而且这个变量是另一个函数的入参,为何报错函数返回值的异常.
全局搜索发现,在工程导入的某一个.lib的头文件内,同时声明了一个** unsigned char MidFun **函数。
当定义为局部变量时,编译器将其理解为结构体变量,编译通过。
当定义为全局变量时,编译器将其理解为某一个函数的实现,编译报错。

解决方案

重命名 函数变量

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值