#include<reg52.h>
#define uchar unsigned char
void main()
{
uchar a,num=0;
while(1)
{
a=2;
if(a>0)
{
num++;
a=0; // 这条不执行
}
if(num==15)
num=0;
}
}
请高手帮忙一下、不胜感激。
我用单步调试了,确实没有执行,如果num==14;走到num++后直接到num=0;这一句了。
追答那就是被编译器优化掉了!!
我知道,已经试过了,可以,可是不知道为什么
追答主要是后面用不上,就被优化掉了!我常常用:
a=0;
a++; a--;
的办法来保证不被优化。