返回信息流就是说
signed char a=-1
if(a==0xff) 是不成立的
而
signed char a=-1
signed char b=0xff
if(a==b) 是采立的
以上编译运行测试了一下,确实是这样
何解?
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #10954同步于 2011/7/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
-1是否于0xff??
ArmStrong
2011/7/29镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
还有个原因不知道有没有可能,就是Char这个东西,说是一个字节,在Debug版本中实际是分配的四个字节为了和int之流实现内存对齐,当然我说的也是Windows VS系列编译器的Debug版本情况
没有8bit宽的比较指令,所以要展成32bit。0xff展开成32bit是0x000000ff,而char(-1)展开后是0xffffffff,所以才会不等。