c语言valotile关键字

来源:互联网 发布:爱宝软件 编辑:程序博客网 时间:2024/06/05 12:43

volatile

是一种类型修饰符,提醒编译器他后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中(内存中)读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器(缓存)中的值,如果这个变量由别的程序更新,将出现不一致。

volatile使用:

(1)中断服务程序中修改的供其他程序检测的变量需要加volatile;

(2)多任务环境下个任务间共享的标志应该加volatile;

(3)存储器映射的硬件寄存器通常也要加volatile说明,因为每次对它的读写可能不同;

理解为:需要读取内存中最新的状态而不是缓存中状态时使用volatile。

volatile与编译器的优化相关。



1 0