今天我发现自己创建了一个由 2 个整数组成的静态数组,并且因为在 C++(不是 C++11)中不允许它的内联初始化,所以我恢复使用 struct 类型的静态变量。
class MyWidget {
...
static const struct Margin {
const int horizontal = 1;
const int vertical = 1;
} margin;
};
我注意到内部变量只对 struct Margin 的所有实例使用一次,所以我决定也将它们设为静态。
class MyWidget {
...
static const struct Margin {
static const int horizontal = 1;
static const int vertical = 1;
} margin;
};
让我感到奇怪的是声明静态结构变量与使用静态成员的静态结构变量之间的区别。AFAC 静态对象在内存中只分配一次,因此无论我的成员是否是静态的,Margin 结构都只会分配一次。
我错过了什么吗?是否存在差异,还是仅仅是语法糖?