如何让 enum 占用字节少

时间:2023-01-11 17:21:57
通常来说sizeof(一个enum)都是4,但我这里不需要4这么长的的枚举,一个char的长度足以。
C#里enum是默认继承自Int,改继承为byte就可以解决。但C++怎么办呢?

8 个解决方案

#1


c++11可以指定,没有c++11的话,好像不行

#2


C++里面枚举貌似被替换成int了,也就是说没有真正意义上的枚举类型。一定要一个字节的话为什么不用char或byte呢?自己做个检查函数就行了。

#3



enum Dummy 
{
A  = 0,
B,
C
};

char v = A;

#4


一人一分... 可以结了。

#5


枚举成员属于立即数,不用担心空间

#6


对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

#7


改编译器。
如何让 enum 占用字节少

#8


机器对int型变量处理最快,对char等类型会慢很多,所以牺牲那么几个字节应该是划得来。

#1


c++11可以指定,没有c++11的话,好像不行

#2


C++里面枚举貌似被替换成int了,也就是说没有真正意义上的枚举类型。一定要一个字节的话为什么不用char或byte呢?自己做个检查函数就行了。

#3



enum Dummy 
{
A  = 0,
B,
C
};

char v = A;

#4


一人一分... 可以结了。

#5


枚举成员属于立即数,不用担心空间

#6


对学习编程者的忠告:
眼过千遍不如手过一遍!
书看千行不如手敲一行!
手敲千行不如单步一行!
单步源代码千行不如单步对应汇编一行!

#7


改编译器。
如何让 enum 占用字节少

#8


机器对int型变量处理最快,对char等类型会慢很多,所以牺牲那么几个字节应该是划得来。