请教高手关于volatile修饰用法问题

[复制链接]
2365|3
 楼主| energy2008 发表于 2010-3-26 08:44 | 显示全部楼层 |阅读模式
有一全局变量在while(1)捕获外部信号,需要用volatile,可是变量加上volatile修饰后还是不能捕获外部信号,而是直接取值寄存器里面的值,资料说着是优化器优化的问题,请问高手,是不是volatile不能用于while(1)死循环,还是有其他什么需要注意的地方,麻烦大家了,谢谢!
IJK 发表于 2010-3-26 10:43 | 显示全部楼层
是不是volatile不能用于while(1)死循环?
可以,volatile能用于while(1)死循环。
IJK 发表于 2010-3-26 10:45 | 显示全部楼层
变量加上volatile修饰后还是不能捕获外部信号,而是直接取值寄存器里面的值---这要看代码是怎样写的。

最好把C的源代码,以及编译生成的汇编代码都贴出来,才看得清楚。
 楼主| energy2008 发表于 2010-3-26 23:15 | 显示全部楼层
把WHILE(1)去掉就运行正常,volatile修饰了一个动态外部变量
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

12

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部