Структура имеет другой размер, если порядок полей отличается
package main
import (
"fmt"
"unsafe"
)
type A struct {
a bool
b int64
c int
}
type B struct {
b int64
a bool
c int
}
type C struct {
}
func main() {
// output 24
fmt.Println(unsafe.Sizeof(A{}))
// output 16
fmt.Println(unsafe.Sizeof(B{}))
// output 0
fmt.Println(unsafe.Sizeof(C{}))
}
StructA
а такжеB
имеют одинаковые поля, но если указаны в другом порядке, они приводят к разному размеру. Зачем?
Размер структурыC
это ноль. Сколько памяти выделено системой дляa := C{}
?
Благодарю.