C语言 01 volatile关键字

volatile缓存

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

volatile关键字的使用:spa

  1:中断服务程序中修改的供其它程序检测的变量须要添加volatile关键字。code

  2:多任务环境下几个任务间共享的标志应该加volatile关键字。blog

  3:存储器映射的硬件寄存器一般也要加volatile说明,由于每次对它的读写可能不一样。内存

volatile int a = 5;

总结:须要读取内存中最新的状态而不是缓存中状态时使用volatile编译器

相关文章
相关标签/搜索