飞思卡尔i.mx6交叉编译工具链BUG

最近在用飞思卡尔的i.mx6平台做一个项目,编写完代码在i.mx6上测试的时候发现有一个函数的返回值判断一直不正确,

我一个函数的返回值类型为 "char" 错误返回值是 ‘-2’,并且用其返回值与 ‘0’值比大小来进入不同处理分支,但是测试的

时候发现,程序始终无法进入错误分支,最后经反复测试才找到问题,因为返回‘-2’的时候系统把他当做254来处理了。

后来我在char前边加一个signed修饰,就能正确返回‘-2’了。

就是说i.mx6的编译工具把 ‘char’型默认为‘unsigned char’,和其他编译器默认为‘signed char’不一致。

这也算是一个不大不小的bug吧,记录一下以防再出错。

你可能感兴趣的:(Linux系统开发,C语言)