volatile关键字
【本文链接】
http://www.cnblogs.com/hellogiser/p/volatile.html
【分析】
volatile 关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。声明时语法:int volatile vInt; 当要求使用 volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据。
(1)易变性。所谓的易变性,在汇编层面反映出来,就是两条语句,下一条语句不会直接使用上一条语句对应的volatile变量的寄存器内容,而是重新从内存中读取。
(2)不可优化。volatile告诉编译器,不要对我这个变量进行各种激进的优化,甚至将变量直接消除,保证程序员写在代码中的指令,一定会被执行。
(3)顺序性。C/C++ Volatile变量间的操作,是不会被编译器交换顺序的。
【参考】
http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777432.html