C++可以声明一个只有1字节(或者更少)的枚举类型吗?

枚举类型,在C++中默认情况下被视为int或unsigned。如果enum中有负值,则被视为int,否则被视为无符号int。无论哪种情况,都占4个字节。

这个大小由编译器决定,不能更改。但是你可以变通。

如果确定一个字节就足够了,可以定义char类型,然后分配所需的enum类型。

例如:

enum {FALSE,TRUE };

这里没有命名枚举,然后定义。

typedef char BOOL

这样这个BOOL类型就占了一个字节,可以同时使用FALSE和TRUE两个枚举值。