C ++ const vs volatile

时间:2017-04-04 14:45:00

标签: c++ const volatile

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

常量:

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

易失性:

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

如果我的理解是正确的,那么挥发性只是另一种常量。

所以,如下所示的行是什么意思?

const volatile char A = 'C';

1 个答案:

答案 0 :(得分:9)

不,volatile不是"另一种const"。 volatile 意味着"变量是常数"。

否则,您的积分是准确的。所以,const volatile表示:

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