最近我一直在使用C ++,发现struct / class类型的对象安静了一种有趣的内存分配行为(如果我可以称其为“内存分配行为”……)。 例如,假设有两种类型:
class TypeA {
public:
int a;
double b;
int c;
};
class TypeB {
public:
double a;
int b;
int c;
};
起初,看起来这两个对象都是相同的,但绝对不是。 运行以下内容:
std::cout << "TypeA is of size " << sizeof(TypeA) << std::endl;
std::cout << "TypeB is of size " << sizeof(TypeB) << std::endl;
输出为:
TypeA is of size 24
TypeB is of size 16
安静很大,是吗? 33%...
试图用Google进行全面的解释,但并没有发现自己很幸运。有谁能够分享我可以阅读的资源或对此行为进行简要说明? (PS:我通读了N4296,但没有找到答案。