volatile 的用法
来源:互联网 发布:php.ini 大文件大小 编辑:程序博客网 时间:2024/05/20 05:30
一:告诉compiler不能做任何优化
比如要往某一地址送两指令:
int *ip =...; //设备地址
*ip = 1; //第一个指令
*ip = 2; //第二个指令
以上程序compiler可能做优化而成:
int *ip = ...;
*ip = 2;
结果第一个指令丢失。如果用volatile, compiler就不允许做任何的优化,从而保证程序的原意:
volatile int *ip = ...;
*ip = 1;
*ip = 2;
即使你要compiler做优化,它也不会把两次付值语句间化为一。它只能做其它的优化。这对device driver程序员很有用。
二:表示用volatile定义的变量会在程序外被改变,每次都必须从内存中读取,而不能把他放在cache或寄存器中重复使用。
如 volatile char a;
a=0;
while(!a){
//do some things;
}
doother();
如果没有 volatile doother()不会被执行
- volatile的用法
- volatile的用法
- volatile的用法。。
- volatile的用法
- volatile的用法(一)
- volatile的用法
- volatile的用法
- volatile的用法
- volatile的用法
- volatile的用法
- volatile关键字的用法
- 了解 volatile 的用法
- volatile的用法
- volatile的用法
- 关键字volatile的用法
- volatile的用法
- VOLATILE的用法
- volatile的用法
- Megaco/H.248, MGCP
- LOG4CXX编译,使用,简单封装
- 一图搞定各种Join连接
- C++main函数argc和argv命令行参数
- C语言随机函数应用
- volatile 的用法
- 二叉树的一些基本运算
- sdut oj 2128排序二叉树的中序遍历
- 用Python高效地完成任务
- 指针传递、值传递和引用的应用
- Ajax介绍
- 几个 关于时间 的函数
- ajax学习总结2
- WPF 4的九大新特性全解析