Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否可以将枚举的默认类型设置为无符号字符?_C++ - Fatal编程技术网

C++ 是否可以将枚举的默认类型设置为无符号字符?

C++ 是否可以将枚举的默认类型设置为无符号字符?,c++,C++,我必须将一些枚举打包到字节数组(char*)并通过网络发送。是否可以将枚举的默认类型设置为无符号字符?(我现在可以强制转换或使用&0xff来提取第一个字节/字符,但这需要额外的操作,所以在enum的定义中有没有解决这个问题的方法?这只有在C++11中才可能: 有关更多信息,请参见不需要强类型枚举本身,C++11也允许为常规枚举指定默认类型。 enum class MyEnum : unsigned char { E1, E2 };

我必须将一些枚举打包到字节数组(
char*
)并通过网络发送。是否可以将枚举的默认类型设置为无符号字符?(我现在可以强制转换或使用
&0xff
来提取第一个字节/字符,但这需要额外的操作,所以在enum的定义中有没有解决这个问题的方法?

这只有在C++11中才可能:


有关更多信息,请参见

不需要强类型枚举本身,C++11也允许为常规枚举指定默认类型。
enum class MyEnum : unsigned char { E1, E2 };