如何使用VC ++编译器标志指定枚举大小

时间:2016-05-09 16:43:09

标签: c++ visual-c++ visual-studio-2013 enums c++03

我有一个C ++代码库,可以在两个平台上编译,其中一个是Visual C ++ 2013。 第二个平台支持C ++ 03(而不是C ++ 11)。第二个平台编译器中的枚举大小实现是使用所需的最小大小。 VC ++实现使用4个字节,即使它们不需要。

我想让VC ++将枚举编译为最小尺寸,而无需修改代码。例如,另一个编译器不编译它:

enum MyEnum : unsigned char {};

我搜索过,但找不到支持这个的编译器标志。 它们存在吗?

1 个答案:

答案 0 :(得分:2)

C ++ 03必须理解枚举常量的显式类型:

enum Enumeration 
#if __cplusplus >= 201103L
  : unsigned char
#endif
{
   ONE = unsigned char(1), // storage type for enum is unsigned char
   ...
}