4

默认情况下,枚举类型变量采用整数的大小,即内存中的 4 个字节。有没有办法将其转换为任何其他数据类型大小。

我不是在谈论类型转换,而是在谈论存储枚举类型所需的内存大小。我已经提到了这个问题,但它并没有说明将整数大小更改为任何其他。任何帮助。

4

2 回答 2

7

c++11 引入了强类型枚举(和强类型枚举(修订版 3)),它允许指定底层整数类型:

#include <iostream>

enum E_ushort : unsigned short { EUS_1, EUS_2 };
enum E_ulong : unsigned long { EUL_1, EUL_2 };

int main()
{
    std::cout << sizeof(E_ushort::EUS_1) << "\n";
    std::cout << sizeof(E_ulong::EUL_1) << "\n";
    return 0;
}

输出:

2
4
于 2013-05-23T09:27:29.150 回答
0

通过阅读本网站上的一些文档,我认为这是不可能的。事实上,这是合乎逻辑的。枚举列表只是一个由数字引用的项目的列表。那么,第一个问题是您在看哪种类型?您是否需要一个枚举列表,其中项目的编号是 bing 的 int ?或者,您是否正在查看其他类型,例如 float char long .. 在这种情况下,我认为这是不可能的

于 2013-05-23T09:28:25.807 回答