打印

请问程序执行加一后变量未改变是什么原因?

[复制链接]
1232|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ldyeah|  楼主 | 2010-9-25 17:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我芯片用的是LPC2138,编译器用的ADS1.2,套用的周立功程序模板
程序中,sd_address是设置的一个全局UINT 32位的变量,仿真的时候程序执行到sd_address=sd_address+1; 这一句的,但是这一句过后sd_address这个变量还是为0,我然后又设置了一个地址变量去看sd_address的地址,固然分配的地址是0。
请问是不是编译的时候根本就没未sd_address这个变量分配地址?虽然看到是地址变量P是0,但我觉得这个P这个变量的默认值一样

这个是程序中的那一部分:
sd_address=0;
//p=&sd_address;
if(sd_address<32000)
{
  sd_address=sd_address+1;
}
else
{
  sd_address=16000;
}

相关帖子

沙发
xinzha| | 2010-9-25 17:26 | 只看该作者
可能跟优化相关

使用特权

评论回复
板凳
ciniao| | 2010-9-26 08:32 | 只看该作者
同楼上

使用特权

评论回复
地板
ldyeah|  楼主 | 2010-9-26 10:12 | 只看该作者
确实是优化问题,在ARM Comoiler的Debug/opt选项卡中,将优化级别设置Optimization Level设置为Minimum就可以了,之前设置的Most

使用特权

评论回复
5
ldyeah|  楼主 | 2010-9-26 10:13 | 只看该作者
谢谢楼上两位

使用特权

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

本版积分规则

17

主题

210

帖子

0

粉丝