【发布时间】:2016-02-14 13:37:00
【问题描述】:
假设我有一些对象声明为const volatile:
根据 C++ 标准($7.1.5.1/8):
[..] volatile 是对实现避免激进的提示 涉及对象的优化因为对象的值 可能会通过实现无法检测到的方式进行更改。[...]
但是,const 限定符意味着对象不 可以更改,因此这两个限定符似乎冲突:
一个意味着对象应该被区别对待,因为它可能会发生变化,另一个意味着它应该被区别对待,因为它不会发生变化。
那么,为什么首先允许变量是const volatile?
【问题讨论】:
-
访问内存映射的只读硬件寄存器时可能有意义。
-
const表示你不能改变变量