【发布时间】:2017-06-20 19:56:43
【问题描述】:
给定一个(可能是非 POD)struct,它只有一个成员,没有继承,也没有虚拟方法:
struct Foo {
Bar value;
Foo() { /* do something */ }
};
C++ 是否保证Foo 与Bar 具有相同的对齐方式和sizeof?如果不是,那么可以提供哪些保证?当我将Bar 修复为特定类型(POD、基本类型、...)时,是否可以提供一些保证?
【问题讨论】:
-
IIRC 至少有一个编译器将所有类大小四舍五入为 4 的倍数,因此只有一个
char成员的类将具有 3 个字节的填充。
标签: c++ struct alignment sizeof