智能车制作

标题: 嵌入式编程必须学会的一个关键字volatile [打印本页]

作者: 尕玍紿    时间: 2014-3-10 11:23
标题: 嵌入式编程必须学会的一个关键字volatile
volatile英文意思是:易变的;
C语言里解释为“直接存取原始内存地址”比较好理解。
不清楚volatile的作用的,可以看下这两个网站的内容:
http://hi.baidu.com/nsgtao/item/a27a059d9c7957d97b7f019c
http://www.cnblogs.com/geneil/archive/2011/12/15/2289073.html
这里我主要是问两个我遇到的跟volatile相关的问题,求老鸟讲解下...
1.volatile的作用只是让程序在读取变量的值时都直接从该变量的内存地址读取,不从之前缓存的地址中读取,避免与实际值不一致。也就是说如果为一个没必要加volatile限定的变量增加volatile关键字的话只会稍稍影响到运行速度吧?可是我现在我为一个变量增加了这个关键字后会导致程序死机,这可能会是什么原因呢?

2.这样一段程序:
  if( a>5)
{
     fun();//调用函数,这个函数里会对a进行操作。
     if( a>1)
     {
          ....
     }
}
这样的程序,如果a不添加volatile的话第二个if的判断会编译器优化成永远成立吗?









欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2