volatile关键字和mutable关键字
2016-04-15 15:51
239 查看
如果不用volatile关键字会如何?可能会造成一个后果就是:编译器发现你多次使用同一个变量的值,然后它可能会假设这个变量是不变的值,并且把这个变量的值放入寄存器中,方便下一次使用,提高存取速度。
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
另外,发现百度百科里面对于C++的一些知识的解释有坑!所以上网查找解释的时候要尽量挑精准地,或者带个心眼去查,免得被坑,当然最好是直接去查教材书籍。
另外,这里粘贴下mutable关键字以及再谈const关键字的一些解释:
![](http://img.blog.csdn.net/20160415155402769?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
另外,发现百度百科里面对于C++的一些知识的解释有坑!所以上网查找解释的时候要尽量挑精准地,或者带个心眼去查,免得被坑,当然最好是直接去查教材书籍。
另外,这里粘贴下mutable关键字以及再谈const关键字的一些解释:
相关文章推荐
- SQL-SELECT-检索数据(一)
- JavaScript 中对变量和函数声明的“提前”
- Make your Spring Security @Secured annotations more DRY
- 如何在Eclipse中添加Tomcat的jar包
- 【Chromium中文文档】Chrome/Chromium沙箱 - 安全架构设计
- 对其他小组的评论
- [从头学数学] 第179节 三角初等变换
- Java学习笔记
- VS2010配置jsoncpp解决编译出错问题
- 上传图片立即显示
- 新浪微博开放平台注册样例
- UVALive 3135--Argus+自己定义优先队列的优先规则
- 做认真的人为自己负责
- RabbitMQ集群搭建与测试
- VC的MDI中实现动态切换文档视图
- 设计模式之禅读书笔记
- IIS发布时的注意事项
- 二叉搜索树的实现
- C++多态篇3——虚函数表详解之多继承、虚函数表的打印
- SpringMVC入门(搭建SpringMVC)