与我在 C++ 中学到的类似,我相信填充会导致两个结构的实例大小不同。
type Foo struct {
w byte //1 byte
x byte //1 byte
y uint64 //8 bytes
}
type Bar struct {
x byte //1 byte
y uint64 //8 bytes
w byte// 1 byte
}
func main() {
fmt.Println(runtime.GOARCH)
newFoo := new(Foo)
fmt.Println(unsafe.Sizeof(*newFoo))
newBar := new(Bar)
fmt.Println(unsafe.Sizeof(*newBar))
}
输出:
amd64
16
24
定义结构成员时是否有经验法则可以遵循?(如类型大小的升序/降序)
是否有我们可以通过的编译时优化,可以自动处理这个问题?
或者我根本不应该担心这个?
幕布斯6054654
慕尼黑的夜晚无繁华
守着一只汪
相关分类