在go语言里我们经常使用struct作为数据存储,由于指针对齐问题,可能结构体的大小也有所不同。
type DemoOne struct { id int8 age int32 add int8 } type DemoTwo struct { age int32 id int8 add int8 }
上述两个内容一致的结构体在占用的内存是多少呢?
func main() { fmt.Println(unsafe.Sizeof(DemoOne{}))//size为12 fmt.Println(unsafe.Sizeof(DemoTwo{}))//size为8 }
由于指针对齐的问题,相同属性的结构体,因为属性的顺序不同也会产生不同大小的内存占用。