打印

奇怪的问题

[复制链接]
1979|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ruiwei0201|  楼主 | 2011-11-24 15:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ruiwei0201 于 2011-11-24 15:17 编辑

我用的是Keil C51,在程序里定义一个全局变量,并赋初值为0,如下:
unsigned char xdata df_num = 0;
奇怪的是,我仿真的时候发现这个变量的值不为0,不知是何原因。能确定只有仿真点用到这个变量,其他地方都没用到。

相关帖子

沙发
yewuyi| | 2011-11-24 15:17 | 只看该作者
那说明这个变量被优化掉了,所以是什么值都无所谓。

使用特权

评论回复
板凳
ruiwei0201|  楼主 | 2011-11-24 15:23 | 只看该作者
本帖最后由 ruiwei0201 于 2011-11-24 15:33 编辑

2# yewuyi
您是说赋初值的操作被优化了?我试了一下,在变量前加volatile关键字可以解决,但还有个新问题,每次热复位后,变量值不清0.

使用特权

评论回复
地板
ayb_ice| | 2011-11-24 15:47 | 只看该作者
在main函数入口处设断点,如果不为0,基本是不可能的

使用特权

评论回复
5
ruiwei0201|  楼主 | 2011-11-24 16:00 | 只看该作者
4# ayb_ice
还真不为0。。

使用特权

评论回复
6
ruiwei0201|  楼主 | 2011-11-24 16:10 | 只看该作者
结贴。剩下的问题自己研究了。。多谢各位!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:从头再来的勇气,不是每个人都有。

28

主题

149

帖子

0

粉丝