linux 下的unsigned char 和char
昨天做一个程序编译,原先是AIX,现在换成LINUX,修修改改,编译通过了。
但是到用的时候,缺发现有个函数一直没使用到一个分支
后面细看makefile编译显示的内容:
comparison is always fasle due to limited range of date type
数据类型限制,条件一直是假。
程序例如:
char c= 0x81;
if(c>=0x81)
dosomething1;
else
dosmething2;
dosomething1 永远都执行不到。
后面把char 修改为 unsigned char 问题解决了。
char 类型的置范围是127 ~ -128
c =0x81
二进制:10000001
十进制:129
超出范围。