使用volatile的重要性

volatile关键字的作用之前已经进行了总结,但是有时候还是会忘记使用,今天记录一下忘记使用后遇到的后果。

如下代码:
Num = 0;
while(Num < 2000)
{
……
}
其中Num在定时器中断中自加,代码的本意是当Num小于2000时执行循环体。
使用的开发环境IAR EW8051 8.1
当不进行代码优化是,代码工作很正常,当使用优化等级high时,while循环无法退出!

原因就不再赘述了,做个记录,警醒自己!

发表评论

邮箱地址不会被公开。 必填项已用*标注