【发布时间】:2012-01-25 16:58:48
【问题描述】:
我的脑抽筋了:
struct MyStruct
{
int x;
...
inline int getX1() const { return x; }
inline int getX2() const volatile { return x; }
};
volatile MyStruct myStruct;
我了解编译器将允许我调用 myStruct.getX2() 而不允许我调用 myStruct.getX1(),因为在 volatile 结构/类上调用的方法必须在这些方法上具有 volatile 限定符。
这是我的问题:如果我创建了这样一个类,并发布它以供其他软件例程使用,我会在方法上添加或不添加 volatile 限定符的原因是什么?
是不是因为一个标记为volatile 的方法告诉编译器不要假设它的任何成员不是volatile,为了优化目的,而如果一个方法没有标记volatile,那么任何成员都没有标记@987654328 @可以优化吗?
【问题讨论】:
标签: c++ volatile qualifiers