10分钟
3.3.3 变量的内存布局
我们已经多次强调,在Go汇编语言中变量是没有类型的。因此在Go语言中有着不同类型的变量,底层可能对应的是相同的内存结构。深刻理解每个变量的内存布局是汇编编程时的必备条件。
首先查看前面已经见过的[2]int
类型数组的内存布局:
图 3-6 变量定义
变量在data段分配空间,数组的元素地址依次从低向高排列。
然后再查看下标准库图像包中image.Point
结构体类型变量的内存布局:
图 3-7 结构体变量定义
变量也时在data段分配空间,变量结构体成员的地址也是依次从低向高排列。
因此[2]int
和image.Point
类型底层有着近似相同的内存布局。
学员评价