当前位置: 首页 > 面试题库 >

Go中的sizeof结构

汪泓
2023-03-14
问题内容

我正在看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。请参阅下面的评论。



 类似资料:
  • 问题内容: 如果我要存储许多结构: 我可以用片来做,但是看起来使用更少的内存可以使用适当的set结构。 不幸的是,Go没有固定的结构。每个人都建议使用,但由于是结构,所以不起作用。有人有什么好的解决方案吗?理想情况下,无需下载库。 问题答案: 通常,设置和映射数据结构比将一组值存储在按设置的普通数组或切片中需要更多的内存,并且映射提供有效的附加功能,例如唯一性或通过键检索值。 如果要最小化内存使用

  • 问题内容: 所以现在我有一个用于客户端连接的结构,如下所示 而且我还获得了ClientConn的地图,如下所示 因此,我在与clientList的每个连接上添加了一个新的ClientConn,但是我想做的是对clientList进行json处理,并获取一个ClientConn数组,其中包含其值,而不仅仅是键。 如果我做 然后我只是得到一个带有空对象的键,而我想要检索的是带有值和键的整个Client

  • sizeof是一个关键字,但它是一个编译时运算符,用于确定变量或数据类型的大小(以字节为单位)。 sizeof运算符可用于获取类,结构,联合和任何其他用户定义数据类型的大小。 使用sizeof的语法如下 - sizeof (data type) 数据类型是所需的数据类型,包括类,结构,联合和任何其他用户定义的数据类型。 尝试以下示例以了解C ++中可用的所有sizeof运算符。 在test.cp

  • 问题内容: 我已经开始使用https://mholt.github.io/json-to-go/将API JSON转换为go结构,但我真的很喜欢它,但是我仍然坚持如何在Report Definition结构中初始化Filters数组结构如下所示。 我似乎无法引用在Filters结构甚至是Filters结构中声明的项,以创建新的Filter项目并将其附加到Filters。 是否可以使用原样编写的Re

  • 问题内容: package main 结构中无名字段的目的是什么? 是否可以像使用命名字段一样访问这些字段? 问题答案: 请参阅“ 在Go中嵌入 ”:您在结构中嵌入了一个匿名字段:通常与嵌入式结构一起使用,而不是像这样的基本类型。该类型没有要显示的“提升字段”。 字段或方法在一个结构匿名字段的被称为 促进 如果是一个合法的选择器,它表示字段或方法。 提升的字段的作用类似于结构的普通字段,只是它们不

  • 问题内容: 我们如何找出Java对象的大小? 例: 现在我怎么知道人对象的大小? 谢谢 问题答案: 这个问题是没有意义的,至少没有没有进一步的背景。 Java中的“大小”概念仅针对基元进行了合理定义:一个字节为8位(毫不奇怪),一个字节为32位,64位,等等(请参见例如http://download.oracle.com/javase/tutorial /java/nutsandbolts/dat