您的位置:首页 > 编程语言 > C语言/C++

C语言中的volatile关键字

2012-07-24 16:20 92 查看
C语言中的volatile是什么意思?

volatile可以翻译为:易变的

如:

u8 a,b;

{

a=2;

b=a;

}

这时编器会把它改成:

u8 a,b;

{

a=2;

b=2;

}

当运行到中间位置,中断把a改了,结果就是错的。

volatile就为了解决这个问题出现的,它会让编译器更老实!

*****************************************************

定义为volatile的变量是说这个变量可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。

volatile变量主要用在以下几个方面:

(1)并行设备的硬件寄存器(如状态寄存器);

(2)一个中断服务子程序中会访问到的非自动变量;

(3)多线程应用中被几个任务共享的变量。

摘自:http://bbs.21ic.com/icview-339921-1-1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: