赋值一个数,结果不等于那个数,毁我三观

2020-01-18 18:47发布

最简单的代码 居然会这样,求解为什么?
编译环境 C51v952

QQ截图20160108190305.png (65.34 KB, 下载次数: 0) 下载附件 2016-1-8 19:03 上传

EEPROM单字节操作例程.rar (23.61 KB, 下载次数: 11) 2016-1-8 19:03 上传 点击文件名下载附件
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
41条回答
hricchaya
2020-01-20 09:41
应该是优化问题,我猜编译器用移位操作结果直接赋值了(省时间),同时整个程序里这个变量的有用精度只有一个字节,结果就只压栈了一个字节(省空间),这个看下汇编代码应该就清楚编译器到底做了什么。对于这样什么实际操作都没有的局部变量,有些编译器优化可能连申请都不会申请直接无视的。

一周热门 更多>