一、使用场景
目前见到这个关键字的地方(下次遇见直接用)就是环形队列结构体里面的各个变量都加上这个关键字。
二、个人观点
这个关键字接的变量说明该变量的值随时都可能会被改变,也就是不能被系统优化,比如缓存进寄存器里面,导致内存没有办法访问到该变量的值。
三、好的说法
变量被volatile修饰过后,就相当于告诉编译器:
这个变量的值随时会被修改,例如运行系统、中断程序、或者硬件都能修改该变量的值。
由于变量的值随时可能被修改,就要求这个变量的值在内存中是随时可以被访问到的。这意味着编译器不能对该变量进行优化操作,例如“将变量的值缓存在寄存器中,导致内存无法访问该变量的值”。