有哪些优化编译器在读取时需要使用Volatile关键字?

unj*_*nj2 3 c++ volatile

用C++思考说

限定符volatile告诉编译器"你永远不知道它何时会改变",并阻止编译器根据该变量的稳定性执行任何优化.

编译器执行的优化(除缓存之外)有哪些?

Han*_*ant 9

最基本的优化是:将变量的值存储在CPU寄存器中.声明它是volatile会强制代码生成器始终从内存重新加载值,而不是使用寄存器中的缓存副本.