c语言中volatile关键字的含义
来源:互联网 发布:中国有哪些著名公知 编辑:程序博客网 时间:2024/06/07 13:15
在C语言中经常会遇到volatile关键字,很多新手都不太懂,以下简单的说明一下。
volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。例如:volatile int i=10;int j = i;...int k = i;volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。
0 0
- C语言中关键字volatile的含义
- c语言中volatile关键字的含义
- C语言中关键字volatile的含义
- c语言中volatile关键字是什么含义
- C语言中关键字volatile的含义[转载]
- 探讨C语言中关键字volatile的含义_C
- 探讨C语言中关键字volatile的含义
- 探讨C语言中关键字volatile的含义
- [转]C语言中关键字volatile的含义
- C语言关键字static和volatile 的含义和作用
- 通过反汇编分析C语言中volatile关键字的含义
- c语言中volatile关键字的作用
- c语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- CEF-GeneralUsage
- LeetCode OJ 之 Sliding Window Maximum(滑动窗口的最大值)
- openssl Unable to load config info from /system/lib/ssl/openssl.cnf
- String、StringBuffer与StringBuilder之间区别
- Android基础入门教程——3.7 AnsyncTask异步任务
- c语言中volatile关键字的含义
- linux下查看cpu信息
- CEF-Architecture
- Python 双引号 单引号 多引号区别
- eclipse导入工程时找不到R文件
- Hadoop-2.5.0手动编译
- Android清单AndroidManifest详细说明
- git打开调试命令
- ADS-B显示终端6.8 基本操作视频 更新