登录
首页 >  Golang >  Go问答

Go中的结构体大小

来源:Golang技术栈

时间:2023-04-28 06:55:30 463浏览 收藏

Golang小白一枚,正在不断学习积累知识,现将学习到的知识记录一下,也是将我的所得分享给大家!而今天这篇文章《Go中的结构体大小》带大家来了解一下Go中的结构体大小,希望对大家的知识积累有所帮助,从而弥补自己的不足,助力实战开发!


问题内容

我正在研究 Go,它看起来很有希望。我试图弄清楚如何获得 go 结构的大小,例如

type Coord3d struct {
    X, Y, Z int64
}

当然我知道它是 24 字节,但我想以编程方式知道它..

你有什么想法吗?

正确答案

import unsafe "unsafe"

/* Structure describing an inotify event.  */
type INotifyInfo struct {
    Wd     int32  // Watch descriptor
    Mask   uint32 // Watch mask
    Cookie uint32 // Cookie to synchronize two events
    Len    uint32 // Length (including NULs) of name
}

func doSomething() {
    var info INotifyInfo
    const infoSize = unsafe.Sizeof(info)
    ...
}

注意: OP 是错误的。unsafe.Sizeof 在示例 Coord3d 结构上确实返回 24。请参阅下面的评论。

本篇关于《Go中的结构体大小》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>