-1

现在,当我过去经常使用嵌入式系统和严重的内存限制时,我记得我们必须非常注意所使用的类型以及它们的使用方式。现在,Windows 程序员典型的浪费空间只是因为你有几 GB 的内存。在任何情况下,我都不想在没有必要的时候浪费,因为如果每个应用程序(和操作系统)都这样做,那么它就会累积起来,最终你的 PC 会很慢。

话虽如此,我正在考虑 C# 或实际上 .NET 中的枚举类型,因为它与您使用哪种语言无关。例如,如果我这样定义一个枚举类型:

enum FreeEnumeration {
    One,
    Two,
    Three
}

在分配时在物理内存中,它是否会占用与此完全相同的字节数:

enum SpreadEnumeration {
    One = 1000,
    Two = 2000,
    Three = 3000
}

对于那些不明白这一点的人,在一些(早期)编译器中,枚举通常作为查找表存储在内存中,因此第二个将占用大约 3000 个插槽。

现在,我倾向于相信在 .NET 中它们不是查找表,并且会占用 3 个整数加上任何其他信息的空间。还是我弄错了?只是好奇,我不想仅仅因为我想偷懒就用零填充内存。

4

1 回答 1

2

an 的大小enum只是一个int(默认情况下)。有关更多详细信息,请参阅https://stackoverflow.com/a/20944766/396746 。

枚举引用结构的大小只是其中元素的数量。

于 2016-03-18T19:36:31.077 回答