gpt4 book ai didi

c++ - 非常大的枚举器(> 64 位类型)

转载 作者:行者123 更新时间:2023-11-28 02:17:52 24 4
gpt4 key购买 nike

TL;DR 一个枚举器可以容纳多少个元素,这个数字会大于 64 位或 96 位数字吗?

根据我使用 C 和 C++ 的经验,我发现可以编译的最大变量类型是 96 位(12 字节),甚至是 GCC 64 位的非标准添加。因此,我开始考虑枚举器以及枚举器的大小。比方说,为了简单起见,我有一个名为 foo 的枚举器类型:

enum foo
{
//Insert types here
}

并且我们的枚举器中填充了大量的类型:

enum foo
{
type1,
type2,
type3,
//Some keyboard-time later....
type9999999999999999999999999999999999999997,
type9999999999999999999999999999999999999998,
type9999999999999999999999999999999999999999,
type10000000000000000000000000000000000000000 //That's fifty zeroes
}

那甚至可以编译吗? (是的,我知道编译会让我很好地了解冰河时代持续多长时间,但仍然如此)而且我是否能够声明一个 foo 具有每个 键入

最佳答案

来自标准:

For an enumeration whose underlying type is not fixed, the underlying type is an integral type that can represent all the enumerator values defined in the enumeration. If no integral type can represent all the enumerator values, the enumeration is ill-formed.

因此,对于符合标准的编译器,如果没有可以容纳所有枚举器值的整数类型,则程序不应编译。

这是来自工作草案 https://isocpp.org/std/the-standard ,但我怀疑那部分已经改变。

关于c++ - 非常大的枚举器(> 64 位类型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33485813/

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