gpt4 book ai didi

c# - 为什么存储开销会在 C# 数据类型中产生浪费?

转载 作者:行者123 更新时间:2023-11-30 13:17:01 25 4
gpt4 key购买 nike

在子主题存储开销(在章节)-C# 5.0 in a Nutshell 书中-有这样一条一般说明:

enter image description here

现在,我想知道为什么结构 A 中的字段会产生空间浪费?或者,作者对整篇笔记的看法是什么?

最佳答案

每个byte字段占1个字节,而每个long字段占8个字节。这意味着,虽然 b 可以放在内存中的任何位置,但 l 需要放在 8 的倍数的地址上。它不能放在地址 0 因为它已经被 b 占用了;因此,它必须放在下一个可用的 8 的倍数处,即 8,导致 7 个字节的中间空间被浪费。

---------------------------------------------------------------------------------
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---------------------------------------------------------------------------------
<--b-> <------------------l-------------------->
<--------------waste------------->

关于c# - 为什么存储开销会在 C# 数据类型中产生浪费?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17504491/

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