VS 2010中的枚举大小选项

时间:2015-09-15 13:14:41

标签: c visual-studio enums size sizeof

我可以在Visual Studio 2010中设置一些选项,将枚举大小更改为 1个字节吗?禁止更改代码。我需要一些编译选项。

1 个答案:

答案 0 :(得分:3)

您可以讨论两种逻辑上不同的大小:与给定枚举类型关联的枚举常量的大小,或者其自身类型为枚举类型的对象的大小。例如,给定

enum example { ONE, TWO };
enum example enum_variable;

第一个声明声明类型enum example和常量ONETWO

也许令人惊讶的是,的常量具有类型enum example;相反,它们的类型为int,因此它们会消耗int所需的任何空间(C99 6.7.2.2/3)。

另一方面,enum_variable确实有enum example类型,更有可能的是它实际上是您希望影响的此类型的大小。 C在那里给出了一些约束,但是指定了实现定义的特定选择(C99 6.7.2.2/4)。这有点充满希望,因为它实际上要求实现记录他们的选择,如果你向下钻取足够的话the VS 2010 docs do so。不幸的是,文档说enum类型的变量是int。如果要相信文档,则{2010}中enum变量的大小不可调整。