最近在用飞思卡尔的i.mx6平台做一个项目,编写完代码在i.mx6上测试的时候发现有一个函数的返回值判断一直不正确,
我一个函数的返回值类型为 "char" 错误返回值是 ‘-2’,并且用其返回值与 ‘0’值比大小来进入不同处理分支,但是测试的
时候发现,程序始终无法进入错误分支,最后经反复测试才找到问题,因为返回‘-2’的时候系统把他当做254来处理了。
后来我在char前边加一个signed修饰,就能正确返回‘-2’了。
就是说i.mx6的编译工具把 ‘char’型默认为‘unsigned char’,和其他编译器默认为‘signed char’不一致。
这也算是一个不大不小的bug吧,记录一下以防再出错。
时间: 2024-10-11 10:09:54