2,154
社区成员




package main
import (
"fmt"
"unsafe"
)
type A struct {
x int32
y int64
}
type B struct {
x int64
y byte
}
type C struct {
x [4]byte
y int64
}
type D struct {
x int64
y [3]byte
}
func main() {
fmt.Printf( "%v\n", unsafe.Sizeof( A{} ) )
fmt.Printf( "%v\n", unsafe.Sizeof( B{} ) )
fmt.Printf( "%v\n", unsafe.Sizeof( C{} ) )
fmt.Printf( "%v\n", unsafe.Sizeof( D{} ) )
}
谁能不跑代码告诉我结果 并且解释下为什么吗??
昨天刚升的1.20 之前用的1.17.5 今天用GO写文件C++读 发现全是乱的 两边数据类型定义也比对的没问题 找半天然后写的个测试代码看看GO的sizeof到底什么情况 结果很不能理解了 ,你要字节对齐也不至于不按结构定义来吧。这么搞要那么多数据类型做什么 直接int64 和 float64 2个不就基本通吃了。