C++常量与易失性

C++ const vs volatile

本文关键字:易失性 常量 C++      更新时间:2023-10-16

根据我在网上和SO上读到的内容:

常量:

  • 告诉编译器不得使用程序说明。
  • 因此,编译器可以优化代码。

挥发性的:

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

如果我的理解是正确的,那么如此不稳定只是另一种常量。

那么,像下面这样的一行是什么意思?

const volatile char A = 'C';

不,volatile不是"另一种const"。 volatile并不意味着"变量是恒定的"。

否则,您的观点是准确的。因此,const volatile意味着:

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