volatile关键字的应用

volatile声明的变量不会因为编译器的优化而改变,每次对变量的读取都是直接在变量的内存单元中进行,没有声明volatile的变量可能会直接从CPU的寄存器中存取。

在C程序进行编译的时候,编译器会进行一些优化,比如:

  int i=10;

  int a=i;

    ...  /* 某些对i没有进行明确操作的代码*/

  int b=i;

       此时i可能被优化了;

当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被保存。

     通常此关键字用于对IO进行操作中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值