天天看點

刷題筆記

題目:

刷題筆記

在 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的整數倍

繼續閱讀