错误说明
- 在实现某一个函数时,定义了一个Struct MidFunT MidFun的局部变量,编译正常
- 将Struct MidFunT MidFun定义为全局变量,编译时出现
Error[Pe147]: declaration is incompatible with “__interwork __softfp) unsigned char MidFun(xxxxxx xxxx xxxxxx).
大概意思是:函数返回值与头文件的函数声明不一致
错误原因
这个问题最奇怪的一点是:明明定义的是变量,而且这个变量是另一个函数的入参,为何报错函数返回值的异常.
全局搜索发现,在工程导入的某一个.lib的头文件内,同时声明了一个** unsigned char MidFun **函数。
当定义为局部变量时,编译器将其理解为结构体变量,编译通过。
当定义为全局变量时,编译器将其理解为某一个函数的实现,编译报错。
解决方案
重命名 函数变量