gpt4 book ai didi

layout - 是否定义了 D 结构的确切布局?

转载 作者:行者123 更新时间:2023-12-01 11:24:14 25 4
gpt4 key购买 nike

是否定义了 D 结构的确切布局?也就是说,以独立于编译器的方式定义的每个成员的确切偏移量?这意味着,幸运或不幸,根据您的需要,编译器将被禁止重新排序字段以获得较小项目的最佳包装并最小化所有偏移量。

最佳答案

D 编译器重新排列结构的成员确实是非法的(尽管对于类它可以)。重要的是编译器不要重新排列结构的成员,因为结构应该能够用于需要特定内存布局的低级内容。这也是结构需要能够与 C 代码交互的情况,因此它们需要匹配您在 C 中获得的内容(至少在使用 extern(C) 时)。所以,结构绝对不会让他们的成员重新排列。此外,您可以通过 align attribute 指定成员的对齐方式。 ,因此您可以完全控制结构的布局。

现在,默认布局可能因架构而异(例如,64 位指针比 32 位指针占用更多空间,这将影响结构成员的打包方式),但它应该与您在 C 中获得的相匹配在那个架构上。

关于layout - 是否定义了 D 结构的确切布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39031063/

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