gpt4 book ai didi

C memcpy 字节缓冲区到打包结构,好的决定吗?

转载 作者:行者123 更新时间:2023-11-30 16:29:58 25 4
gpt4 key购买 nike

我知道将缓冲区类型转换为结构体违反了严格的别名规则,并且它不可移植

然而,memcpy() 是一个带有属性包装的结构缓冲区,不会使该规则无效,这是一个好的决定,而不是解析缓冲区的内容吗?让我们记住,两者始终具有固定大小

最佳答案

如果您已确保打包结构在您希望支持的所有目标平台上根据需要布置字节,则通过 memcpy 将字节复制到该结构中,然后通过该结构访问它们成员(member)很好。

根据具体情况,建议将结构成员复制到普通(未打包)结构以供进一步使用,以便打包结构中未对齐的成员不会被重复访问,这可能会导致效率低下。最终,这可能相当于发出多个 memcpy 调用,将字节从缓冲区复制到正常结构的各个成员中。

使用 memcpy 肯定至少与解析缓冲区一样高效,因为 memcpy 是人们可以对数据做的最简单的事情。但它是否更有效或完全相同取决于您将进行哪种解析。一旦您将数据放入结构中,您仍然必须以应用程序所需的任何方式对其进行操作,因此 memcpy 似乎不会消除任何必须完成的实际工作。 p>

关于C memcpy 字节缓冲区到打包结构,好的决定吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51519549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com