C++ 更改枚举类型C+的数据大小+;

C++ 更改枚举类型C+的数据大小+;,c++,mfc,enums,size,C++,Mfc,Enums,Size,默认情况下,枚举类型变量的大小为整数,即内存中的4字节。是否有任何方法将其转换为任何其他数据类型大小 我说的不是类型转换,而是存储枚举类型所需的内存大小。但它没有说明如何将整数大小更改为任何其他大小。有任何帮助。c++11引入了(和),它允许指定基础整数类型: #include <iostream> enum E_ushort : unsigned short { EUS_1, EUS_2 }; enum E_ulong : unsigned long { EUL_1, EUL_2

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

我说的不是类型转换,而是存储枚举类型所需的内存大小。但它没有说明如何将整数大小更改为任何其他大小。有任何帮助。

c++11引入了(和),它允许指定基础整数类型:

#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;
}
#包括
enum E_ushort:unsigned short{EUS_1,EUS_2};
enum E_ulong:无符号长{EUL_1,EUL_2};
int main()
{

std::cout通过阅读一些文档,我认为这是不可能的。事实上,这是合乎逻辑的。枚举列表只是一个项目由数字引用的列表。所以,第一个问题是,你看的是哪种类型?你需要一个枚举列表,项目的名称是谁?或者,你是在看另一种类型,比如float char long.。在这种情况下我认为这是不可能的

这意味着如果我们像这样声明一个枚举,它将采用无符号短的大小?你能再解释一下吗?是的,它将采用
无符号短的大小
。我不确定还有什么可以解释。c++11引入了此功能(请参阅答案中的链接)。非常感谢。这正是我想要的。 2 4