写点什么

2022-09-20:以下 go 语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

  • 2022 年 9 月 20 日
    北京
  • 本文字数:240 字

    阅读完需:约 1 分钟

2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )

2022-09-20:以下 go 语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。


package main
import ( "unsafe" "fmt")
func main() { type T1 struct { a struct{} x int64 } fmt.Println(unsafe.Sizeof(T1{}))
type T2 struct { x int64 a struct{} } fmt.Println(unsafe.Sizeof(T2{}))}
复制代码


答案选 B。空结构体的大小是 0,跟 c++的不一样。但是最后零字段是例外,大部分情况下会占用 1 个字节;如果结构体的所有字段大小都是 0,那么最后零字段也是 0。



发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2021.02.15 加入

还未添加个人简介

评论

发布
暂无评论
2022-09-20:以下go语言代码输出什么?A:8 8;B:8 16;C:16 16;D:16 8。 package main import ( “unsafe“ “fmt“ )_golang_福大大架构师每日一题_InfoQ写作社区