一个参数既可以是const还可以是volatile吗?解释为什么
2016-04-13 10:33
555 查看
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份 volatile修饰符告诉complier变量值可以以任何不被程序明确指明的方式改变,最常见的例子就是外部端口的值,它的变化可以不用程序内的任何赋值语句就有可能改变的,这种变量就可以用volatile来修饰,complier不会优化掉它。 const修饰的变量在程序里面是不能改变的,但是可以被程序外的东西修改,就象上面说的外部端口的值,如果仅仅使用const,有可能complier会优化掉这些变量,加上volatile就万无一失了。
相关文章推荐
- java默认初始化
- HDOJ 2242 考研路茫茫——空调教室
- Oracle EXP-00091解决方法
- Feature Learning based Deep Supervised Hashing with Pairwise Labels
- 在CentOS中init.d service 开机时自动启动脚本
- Python的GIL是什么鬼,多线程性能究竟如何
- nginx 配置 单页面应用的解决方案
- http协议get、post请求分析及用HttpRequester测试的报错及可能原因
- python入门(四)
- DD语句
- 【Android】如何写一个JsBridge
- Win 8.1清理C盘空间
- bzoj 1180(link cut tree)
- 进程的切换和一般执行
- is_array
- 实时消息传输协议 RTMP(Real Time Messaging Protocol)
- STM32——系统滴答定时器
- Android : TextView 显示特殊样式(SpannableStringBuilder的应用)
- 利用runtime进行归档/解归档
- 解决:remove override annotation问题