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

[复制链接]
 楼主| 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
 楼主| ldyeah 发表于 2010-9-26 10:13 | 显示全部楼层
谢谢楼上两位
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

210

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部