gpt4 book ai didi

c# - 与顺序和显式相比,StructLayout.Auto 意味着什么?

转载 作者:太空宇宙 更新时间:2023-11-03 19:25:15 28 4
gpt4 key购买 nike

我认为 LayoutKind.Sequential 和 LayoutKind.Explicit 很清楚,但是 C# 是如何处理 LayoutKind.Auto 的?

最佳答案

LayoutKind.Auto 只是意味着,“我允许 CLR 重新排序与这些字段对应的字节”。它决定了如何重新组织内存使用、打包等字段。 确切地进行哪些更改文档未指定,可能是因为它是与您编写结构的方式无关的实现细节。

如果您要传递给非托管代码,这总是一件坏事,因为非托管代码期望这些字段按特定顺序排列。它们可能的重新排列势必会产生意想不到的后果。这就是为什么您不能将 LayoutKind.Auto 结构公开给非托管代码的原因。

关于c# - 与顺序和显式相比,StructLayout.Auto 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9196432/

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