volatile 关键字

volatile 类型限定符告诉编译器被它修饰的变量可能会被应用程序之外的其他东西修改,比如操作系统、硬件或者一个并发执行的线程。
确切地说,volatile 限定符告诉编译器不要对这个变量(被 volatile 修饰的变量)进行任何形式的优化,而是始终从变量在内存中的位置读取变量的值。

如果不给变量加上 volatile 限定符,编译器可能会对 C++ 代码进行优化。在这个优化中,编译器把变量的值载入到 CPU 寄存器中,这个操作只需要进行一次。然后它只对 CPU 寄存器中的值进行引用,与每次都从变量所在的内存地址取得变量的值并进行使用相比,优化操作能够得到更好的性能。

给一个结构加 volatile 限定符等于给结构中所有的成员都加 volatile 限定符,这样可以确保任何一个成员始终都是从内存中读取的。

如果传一个变量的地址给函数,那么函数必须从内存中读取它的值,编译器的优化程序不会对此产生影响。

备注:
volatile: 易变的(英文注释)。

posted on 2011-12-26 22:58 梦五 阅读(121) 评论(0)  编辑 收藏 引用 所属分类: Windows相关


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜