默认情况下,枚举类型变量采用整数的大小,即内存中的 4 个字节。有没有办法将其转换为任何其他数据类型大小。
我不是在谈论类型转换,而是在谈论存储枚举类型所需的内存大小。我已经提到了这个问题,但它并没有说明将整数大小更改为任何其他。任何帮助。
默认情况下,枚举类型变量采用整数的大小,即内存中的 4 个字节。有没有办法将其转换为任何其他数据类型大小。
我不是在谈论类型转换,而是在谈论存储枚举类型所需的内存大小。我已经提到了这个问题,但它并没有说明将整数大小更改为任何其他。任何帮助。
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
通过阅读本网站上的一些文档,我认为这是不可能的。事实上,这是合乎逻辑的。枚举列表只是一个由数字引用的项目的列表。那么,第一个问题是您在看哪种类型?您是否需要一个枚举列表,其中项目的编号是 bing 的 int ?或者,您是否正在查看其他类型,例如 float char long .. 在这种情况下,我认为这是不可能的