C语言中的volatile关键字
2011-02-16 11:33
176 查看
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可以保证对特殊地址的稳定访问,不会出错。
例如:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,每次使用它的时候必须从i的地址中读取,因而编译器生成的可执行码会重新从i的地址读取数据放在k中。
而优化做法是,由于编译器发现两次从i读数据的代码之间的代码没有对i进行过操作,它会自动把上次读的数据放在k中。而不是重新从i里面读。这样以来,如果i是一个寄存器变量或者表示一个端口数据就容易出错,所以说volatile可以保证对特殊地址的稳定访问,不会出错。
相关文章推荐
- C语言中volatile关键字
- C语言中volatile关键字的作用
- c语言中const volatile关键字 和 elf section的关系
- C语言中volatile关键字的作用
- 解读关键字volatile(C语言面试题分析之一)
- C语言中volatile关键字的作用
- C语言中volatile关键字的学习
- c语言中volatile关键字
- 你了解C语言中的关键字volatile吗?
- C语言中volatile关键字的作用
- C语言的volatile关键字分析
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- C语言中volatile关键字的作用
- c语言 volatile 关键字作用
- C语言中的volatile关键字
- C语言关键字之volatile的使用
- 你了解C语言中的关键字volatile吗?
- C语言之volatile关键字的应用
- C语言中volatile关键字的作用