关于Go结构体内存大小的一点小知识
在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`
`}`
由于指针对齐的问题,相同属性的结构体,因为属性的顺序不同也会产生不同大小的内存占用。