找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3724|回复: 4
打印 上一主题 下一主题
收起左侧

非常奇怪,C语言变量赋值失败

[复制链接]
跳转到指定楼层
楼主
我本想仿真测试一下两种变量右移运算需要多少时间,
结果发现赋值都出问题了,两个变量分别为是16位uint和8位uchar
软件调试、在线仿真都失败了。


42、43 和 45、46四条语句被莫名其妙跳过了(强制断点都不行)
赋值的数值也没有超出uint和uchar的规定范围


汇编窗口发现编译器根本就没有编译这几条语句,直接当做注释跳过了


变量监视器也显示它们没有被赋值




我之用范例程序做修改都没出过这种问题,这次很奇怪,求大神解答。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:168996 发表于 2020-2-9 12:33 | 只看该作者
被编译器优化掉了,如果这些语句实在需要,可以降低优化级别试试:Option for target\c51\code optimization,默认可能是8,可以降低(比如3)试试
回复

使用道具 举报

板凳
ID:235200 发表于 2020-2-9 13:28 | 只看该作者
应该是程序被优化了
回复

使用道具 举报

地板
ID:224104 发表于 2020-2-9 13:45 | 只看该作者
banalsheep 发表于 2020-2-9 12:33
被编译器优化掉了,如果这些语句实在需要,可以降低优化级别试试:Option for target\c51\code optimizatio ...

谢谢,问题解决了
回复

使用道具 举报

5#
ID:224104 发表于 2020-2-9 13:46 | 只看该作者
csmyldl 发表于 2020-2-9 13:28
应该是程序被优化了

确实如此,只做了移位操作但没有使用,被优化掉了,多谢!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表