编译器默认以8字节对齐,当成员变量最大的字节数超过8时就按照8字节对齐,小于的话就按照最大的那个对齐
a: 8 c+u+v+w: 8 x+y+z: 8 o+b:8 d+e:8 总共: 8*5 = 40 这样理解为啥不对呢?
class A1 { private: double a; // 8字符 char c;//2 MM mm;//20 int b;//8 char d;//2 float e;//8 };
楼主是不是把double当成4字符了. sizeof(struct MM) = 20; class A1 { private: double a; // 8字符 char c; MM mm; int b; char d; float……
33,311
社区成员
41,784
社区内容
加载中
试试用AI创作助手写篇文章吧