C++11 volatile 类型

volatile作用: 作为指令关键字,确保本条指令不会受到编译器的优化而省略,而且要求每次直接读值。

 

定义:

volatile int nTest;

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。

 

 上图可以发现在没有优化的情况下,编译器强制执行了a=10;这条语句,然后再输出a;而采用优化后并没有执行a=10;直接输出了10;

 

 

posted @ 2018-07-13 17:25  ye_ming  阅读(388)  评论(0编辑  收藏  举报