聲明類和結構體時成員順序將影響其大小


struct A  // sizeof (A) == 12
{
 char b;
 int a;
 char c;
};
struct B  // sizeof (B) == 8
{
 char b;
 char c;
 int a;
};

這是編譯器的事情,把分配內存的最小單位划分成了4Byte,這是為了尋址更加迅速,犧牲了空間。

結構體A存放b占用了4B,存放a占用了4B,存放c占用了4B;

結構體A存放b、c占用了4B,存放a占用了4B。

有點像磁盤里簇和扇區里的概念了。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com