请教大家了,大家帮帮我吧。我刚学单片机C51,用的是keil,测试小程序时发现keil观察变量的Watches窗口老是出错不知什么原因。比如:
void main()
{
int a;
int b;
a=12;
b=a*100;
}
执行程序时看显示变量值的窗口Watches发觉显示a的值是1200,b的值是1200;
再比如:
void main()
{
int a,b,c;
a=12;
b=a*100;
c=a;
}
执行程序时看显示变量值的窗口Watches发觉显示a的值是0,b的值是1200;c的值是12,这倒底是怎么回事啊,真的把我搞晕了。
还有程序执行到主函数main的结束符" }"时就会报出错。说是某个内存地址不允许执行,但那都是空地址啊,真的想不通。
优化了
用volatile声明一下,不让编译器这么干就成了
用 volatile 声明确实正常了,这是编译器有问题还是我用的keil版本不好????在keil上能设置来避免这个问题吗,请教了。
void main()
{
int a,b,c;
a=12;
b=a*100;
c=a;
}
这种句子你都用窗口来看啊,汗
单步简单多了