題目:

在 VS2013 下,這個結構體所占的空間大小是____位元組
A. 16 B. 9 C. 12 D. 8
解:
因為 一般編譯器 定義 int 為 4 位元組,short 為 2位元組, char 為 1位元組,而且要考慮 記憶體配置設定 4 位元組對齊。
int a; – 需要 4 bytes
char b; – 需要 1 byte
short c; – 需要 2 bytes
short d; – 需要 2 bytes。
配置設定 a 4 位元組
配置設定 b c 4 位元組 (浪費1位元組 )
配置設定 d 4 位元組 (浪費2位元組 )
共用去 12 位元組。
結論:
預設情況下,結構體的大小是結構體中最長類型的整數倍。
結構體中的空間分布是按照結構體中最長類型對齊的。
結構體中不同類型的成員,一定是按照自己的類型對齊。比如,int型的起始位址一定是4的整數倍,short型的首位址一定是2的整數倍