struct LGStruct1 {
double a; // 8 (0-7)
char b; // 1 [8 1] (8)
int c; // 4 [9 4] 9 10 11 (12 13 14 15)
short d; // 2 [16 2] (16 17)
}struct1;
// 内部需要的大小为: 17
// 最大属性 : 8
// 结构体整数倍: 24
// 结构体嵌套结构体 : 作业
//
// 15 -> 16
struct LGStruct2 {
double a; //8 (0-7)
int b; //4 (8 9 10 11)
char c; //1 (12)
short d; //2 13 (14 15) - 16
}struct2;
// 15 -> 16
//原则1:结构体内变量存储的开始位置应该是变量所占字节的整数倍(第一个变量从0开始),如不是,跳至整数倍开始存
//原则2:结构体嵌套结构体的话,第二个结构体应该从8的倍数开始存储
//原则3:结构体大小最终应该为其内部最大变量(内部基础变量)的整数倍
struct LGStruct3 {
double a; //8 [0-7]
int b; //4 [8 4] 8 9 10 11
struct LGStruct2 m;//16 [16 16] 16 17 ... 31
char c; //1 [32 1] 32
short d; //2 [34 2] 34 35
//因为结构体为8的整数倍,所以最终结果为40
}struct3;
iOS 结构体内存对齐
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...