C++ const vs volatile

Sha*_*adi 0 c++ const volatile

从我在网上和SO上看到的内容:

常量:

  • 告诉编译器不能使用程序指令更改变量.
  • 因此,编译器可以优化代码.

挥发性:

  • 变量是常量但可以从程序外部更改.
  • 告诉编译器每次都从内存中读取变量的值.
  • 告诉编译器不要对这个变量使用优化.

如果我的理解是正确的,那么易变性只是另一种常量.

那么,像下面那样的线是什么意思呢?

const volatile char A = 'C';

Lig*_*ica 9

不,volatile不是"另一种const".volatile不会意味着"变量是不变的."

否则,您的积分是准确的.所以,const volatile意思是:

  1. 程序员在初始化后无法修改对象(这是const部分)
  2. 外部机制仍然可以修改其值,因此每次请求读取时都必须从"内存"中检索它,而不是通过优化来缓存(这是volatile部分)