- 论坛徽章:
- 0
|
回复 12# wkq5325
现在C++的实现:
class CB0 { int b0; }; //sizeof(CB0)==4
class CB1 : public CB0 { char b1; }; //sizeof(CB1)==8
class CB2 : public CB1 { char b2; }; //sizeof(CB2)==12
class CB3 : public CB2 { char b3; }; //sizeof(CB3)==16
class CB4 : public CB3 { char b4; }; //sizeof(CB4)==20
class CB5 : public CB3 { char b5; }; //sizeof(CB5)==24
...
实现紧缩排列后:
class CB1 : public CB0 { char b1; }; //sizeof(CB1)==8, sizeof1(CB1)==5
class CB2 : public CB1 { char b2; }; //sizeof(CB2)==8, sizeof1(CB2)==6
class CB3 : public CB2 { char b3; }; //sizeof(CB3)==8, sizeof1(CB3)==7
class CB4 : public CB3 { char b4; }; //sizeof(CB4)==8, sizeof1(CB4)==8
class CB5 : public CB4 { char b5; }; //sizeof(CB5)==12, sizeof1(CB5)==9
...
效果一目了然 |
|