爲了加快編譯器的取數速度,編譯器默認對內存進行字節對齊。對結構體(包括類)進行字節對齊的原則是:
(1)結構體變量的首地址能夠被其最寬基本類型成員的大小所整除;
(2)結構體每個成員相對於結構體首地址的偏移量都是成員大小的整數倍,如果有需要編譯器會在成員之間加上填充字節;
(3)結構體的總大小爲結構體最寬基本類型成員大小的整數倍,如果有需要編譯器會在最末一個成員之後加上填充字節
在結構體和類中成員函數中的非虛函數不佔空間,虛函數佔一個指針的字節。
結構體中以最大成員類型的對齊方式爲準,即當需要增長時,增長最大成員類型所佔用的字節數。
靜態成員變量所有的類對象共享一份,在靜態區域中,並不佔用類對象的空間;
沒有任何成員變量的類對象佔用一個字節的空間。