C++ volatile 易变的 关键字
参考博客:https://blog.csdn.net/sinat_31608641/article/details/107801605
感觉这篇写的也不太准确,之后再补吧
volatile的作用就是用来进行多线程编程。在单线程中那就是只能起到限制编译器优化的作用。
volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从内存中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象易变性。
Volatile关键词的第二个特性:“不可优化”特性。volatile告诉编译器,不要对我这个变量进行各种激进的优化,甚至将变量直接消除,保证程序员写在代码中的指令,一定会被执行。