c++之volatile
来源:互联网 发布:淘宝上靠谱的运动鞋店 编辑:程序博客网 时间:2024/05/26 15:58
volatile被设计用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:要么无法编写多线程程序,要么编译器失去大量优化的机会。
volatile的作用:
作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 简单地说就是防止编译器对代码进行优化.比如如下程序:
XBYTE[2]=0x55;
XBYTE[2]=0x56;
XBYTE[2]=0x57;
XBYTE[2]=0x58;
对外部硬件而言,上述四条语句分别表示不同的操作,会产生四种不同的动作,但是编译器就不能像对待纯粹的程序那样对上述四条语句进行优化,只认XBYTE[2]=0x58(即忽略前三条语句,只产生一条机器代码)。如果键入volatile,则编译器会逐一的进行编译并产生相应的机器代码(四条).
- C关键字之 volatile
- ANSI C之关键词volatile
- C语言之volatile【整理】
- c 之auto register volatile
- C语言关键字之volatile
- C语言之--volatile关键字
- __asm__ volatile 之 C语言嵌入式汇编
- C语言开发之专一王子:volatile
- C语言知识点学习之volatile关键字
- __asm__ volatile 之 C语言嵌入式汇编
- __asm__ volatile 之 C语言嵌入式汇编
- C 关键字之别搞砸了 volatile
- C语言关键字之volatile的使用
- c语言之volatile和register关键字
- __asm__ volatile 之 C语言嵌入式汇编
- C/C++之volatile关键字详解
- C语言之volatile关键字的应用
- C语言之 volatile 类型修饰符
- SQLite中如何用api操作blob类型的字段
- 编译 链接和加载
- 在内核中添加一个可以在用户态调用的函数
- 【codechef】Traffic jam for N5
- java == 和 equals的区别
- c++之volatile
- 公司Demo小札记给自己看。
- oracle_给视图传参数
- 第2章:打印表格
- 如何设置EditText,使得只能输入数字或者某些字母
- 检测iphone是否安装有某个程序,或者打开某个程序openURL CanOpenURL
- android Runtime.getRuntime().exec使用
- Microsoft Visual Studio 2008实用配置(一):显示行号
- Table of Contents Spring MVC 1.