内存对齐

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)
上一篇 下一篇

猜你喜欢

热点阅读