关于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
}

  由于指针对齐的问题,相同属性的结构体,因为属性的顺序不同也会产生不同大小的内存占用。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM