一.sizeof大小(64/32),基本类型和它们的引用的sizeof值相等,指针型在64位机上都是8。
char(&) | short(&) | int(&) | long(&) | long long(&) | float(&) | double(&) | long double(&) | 指针 |
---|---|---|---|---|---|---|---|---|
1 | 2 | 4 | 8/4 | 8 | 4 | 8 | 16/8 | 8/4 |
二.简单struct
struct A:
long 0~7
char 8
int 12~15
最大成员长度是8。因为0~15共占16,且16是8的倍数。所以为16。char 0
long 8~15
int 16~19
最大成员长度是8。因为0~19共占20,但20不是8的倍数。所以为24。
三.嵌套struct
内部struct应该以它的最大数据成员大小的整数倍开始存储,
外部struct大小是内外struct中最大基本数据成员的整数倍。A 0~23
char 24
int 28~31
最大成员长度是8。因为0~31共占32,32是8的倍数。所以为32。char 0
A 8~31
int 32~35
最大成员长度是8。因为0~35共占36,但36不是8的倍数。所以总的大小为40。