默认情况下,枚举类型变量的大小为整数,即内存中的4个字节。有没有办法将其转换为任何其他数据类型大小。
我不是在谈论类型转换,而是讨论存储枚举类型所需的内存大小。I have referred this question但它没有告诉我们将整数大小更改为任何其他大小。任何帮助。
答案 0 :(得分:7)
c ++ 11引入了strongly typed enums(和Strongly Typed Enums (Revision 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
答案 1 :(得分:0)
阅读一些文档on this website我认为这是不可能的。事实上,这是合乎逻辑的。枚举列表只是一个列表,其中的项目由数字引用。那么,首先问一下你在看哪种类型?你需要一个枚举列表,项目的提名者是为了一个int吗?或者,你是否正在寻找像浮动字符长的其他类型..在这种情况下我认为不可能