volatile 关键字小分析
2010-05-20 10:59
127 查看
看源程序是发现如下这句代码
typedef volatile unsigned int AT91_REG;// Hardware register definition
其中的volatile令我不解,所以查了查资料,基本弄明白了,如下解释:
volatile的英文含义为易失的,易变的,在此处也基本表示这个意思。
用该关键字声明后的变量,在被编译器编译的时候,不会被优化,而是从变量的原始地址处去寻找值,如果该变量原来在内存中,第一次调用时候被放在了cpu的寄存器中,第二次调用的时候,如果有volatile,则编译器会让程序从变量的原始地址处去寻找变量的值,因为值是易变的,不能保证cpu寄存器的变量与内存中的变量还是一样的,所以该关键字是为了保证变量的可靠。
typedef volatile unsigned int AT91_REG;// Hardware register definition
其中的volatile令我不解,所以查了查资料,基本弄明白了,如下解释:
volatile的英文含义为易失的,易变的,在此处也基本表示这个意思。
用该关键字声明后的变量,在被编译器编译的时候,不会被优化,而是从变量的原始地址处去寻找值,如果该变量原来在内存中,第一次调用时候被放在了cpu的寄存器中,第二次调用的时候,如果有volatile,则编译器会让程序从变量的原始地址处去寻找变量的值,因为值是易变的,不能保证cpu寄存器的变量与内存中的变量还是一样的,所以该关键字是为了保证变量的可靠。
相关文章推荐
- java 多线程 volatile 关键字分析
- 面试点:解读关键字volatile(C语言面试题分析之一)
- 多线程并发的解决方案 volatile synchronized notify notifyAll wait关键字分析
- 【转】c语言中volatile关键字分析-2
- Java volatile关键字可见性分析
- 并发编程volatile关键字分析
- const , volatile 关键字分析
- 嵌入式开发中关键字const、static、volatile的用法分析
- C++中volatile关键字的分析
- 【转】c语言中volatile关键字分析-1
- Java中的volatile关键字详解及单例模式双检锁问题分析
- 解读关键字volatile(C语言面试题分析之一)
- 深入多线程之:内存栅栏与volatile关键字的使用分析
- 专题一关键字的剖析----5.const,volatile分析
- 【C语言复习(一)】auto、static、register、const、volatile关键字的分析
- 解读关键字volatile (C语言面试题分析之一)
- volatile关键字分析——可见性
- volatile关键字分析
- C语言中关键字const、static、volatile的用法分析
- C语言的volatile关键字分析