Volatile Specifier in C++ (Questioning)

volatile 的作用到底是什么?我知道 volatile 声明的变量不会被编译器优化到寄存器中去。意思说用 volatile 声明的变量只能从内存中取,然后放到内存中。然后使用 volatile 会 back-off 编译器的优化。C++ 经常把 constvolatile 称为 CV qualifier。

硬件开发的程序中,经常会出现 volatile 这个修饰符,网上给出的解释是告诉编译器该变量可能会在程序外被改变,因此不应该对变量进行优化?理解不了。