在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 }
由於指針對齊的問題,相同屬性的結構體,因為屬性的順序不同也會產生不同大小的內存占用。