内存对齐
2022-08-03 本文已影响0人
ios小喽喽
8字节:指针大小、对象、属性
首先打印出对象获取内存地址:
图(1)
然后打印内存地址:用x打印内存地址
图(2)
然后打印内存地址:用x/4gx打印内存地址
图(3)
图(4)
打印属性地址:
图(5)
图(6)
内存对齐原则:
1:数据成员对⻬规则:结构(struct)(或联合(union))的数据成员,第
⼀个数据成员放在offset为0的地⽅,以后每个数据成员存储的起始位置要
从该成员⼤⼩或者成员的⼦成员⼤⼩(只要该成员有⼦成员,⽐如说是数组,
结构体等)的整数倍开始(⽐如int为4字节,则要从4的整数倍地址开始存
储。 min(当前开始的位置m n) m = 9 n = 4
9 10 11 12
2:结构体作为成员:如果⼀个结构⾥有某些结构体成员,则结构体成员要从
其内部最⼤元素⼤⼩的整数倍地址开始存储.(struct a⾥存有struct b,b
⾥有char,int ,double等元素,那b应该从8的整数倍开始存储.)
3:结构体的总⼤⼩,也就是sizeof的结果,.必须是其内部最⼤
成员的整数倍.不⾜的要补⻬。
图(7)
图(8)
图(9)