void main(void)
{
unsigned int y=0x1314;
unsigned char yh=0,yl=0;
initcpu();
yl=y%256;//取余数得低8位
yh=y/256;//取整得高8位
for(y=0;y<960;)
{
y+=100; yl=y%256;yh=y/256;
}
}
上面的代码中,for循环前两句会被优化掉, yl=y%256;yh=y/256;
这两句不会被执行
在变量声明unsigned char yh=0,yl=0;
前加关键词volatile,yl=y%256;yh=y/256;
这两句不会被优化
如下所示
void main(void)
{
unsigned