如果我有:
__PRE__会
struct whatever {
int data;
};
volatile whatever test;
不稳定?
Naw*_*waz 115
可以问另一个问题(或者只是另一种方式来查看原始问题):
const
所有成员const
?如果我有:
struct whatever { int data; };
const whatever test;
Run Code Online (Sandbox Code Playgroud)
test.data const
也会吗?
我的回答是:是的.如果声明类型的对象whatever
有const
那么它的所有成员将const
太
同样,如果你声明类型的对象whatever
有volatile
那么它的所有成员将volatile
过,就像如果你声明与对象const
,它的所有成员将是const
太.
const
并且volatile
是同一枚硬币的两面; 它们是因为标准经常将它们称为cv-qualifiers
.
引用标准(7.1.5.1/8美元)
[注意:volatile是对实现的暗示,以避免涉及对象的激进优化, 因为对象的值可能会被实现无法检测到的方式更改.有关详细语义,请参见1.9.一般来说,volatile的语义在C++中与在C++中的相同.
这意味着,如果您的对象是结构的实例,那么编译器无法避免涉及该对象的积极优化,除非它避免对其每个成员进行积极优化.(否则,它如何避免涉及对象的优化?)
相关主题: