C++ const 与 volatile
C++ const vs volatile
根据我在网上和 SO 上阅读的内容:
常数:
- 告诉编译器不得使用更改变量
程序指令。
- 因此,编译器可以优化代码。
挥发性:
- 变量是常量,但可以从程序外部更改。
- 告诉编译器每次都从内存中读取变量的值。
- 告诉编译器不要对这个变量使用优化。
如果我的理解是正确的,那么volatile就是另一种const。
所以,像下面这样的一行是什么意思?
const volatile char A = 'C';
不,volatile
不是 "another kind of const
"。 volatile
不是 意思是 "variable is constant".
否则,您的分数是准确的。所以,const volatile
意味着:
- 程序员无法在对象初始化后对其进行修改(这是
const
部分)
- 外部机制可能仍会修改其值,因此每次请求读取时都必须从 "memory" 中检索,而不是通过优化缓存(这是
volatile
部分)
根据我在网上和 SO 上阅读的内容:
常数:
- 告诉编译器不得使用更改变量 程序指令。
- 因此,编译器可以优化代码。
挥发性:
- 变量是常量,但可以从程序外部更改。
- 告诉编译器每次都从内存中读取变量的值。
- 告诉编译器不要对这个变量使用优化。
如果我的理解是正确的,那么volatile就是另一种const。
所以,像下面这样的一行是什么意思?
const volatile char A = 'C';
不,volatile
不是 "another kind of const
"。 volatile
不是 意思是 "variable is constant".
否则,您的分数是准确的。所以,const volatile
意味着:
- 程序员无法在对象初始化后对其进行修改(这是
const
部分) - 外部机制可能仍会修改其值,因此每次请求读取时都必须从 "memory" 中检索,而不是通过优化缓存(这是
volatile
部分)