使用volatile的重要性

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

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

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

分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e4%bd%bf%e7%94%a8volatile%e7%9a%84%e9%87%8d%e8%a6%81%e6%80%a7/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名