VS 2010 中的枚举大小选项

enum size option in VS 2010

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

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

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

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

也许令人惊讶的是,常量 而不是 的类型是 enum example;相反,它们具有 int 类型,因此它们将消耗 int 所需的任何数量的 space (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。如果要相信文档,那么 enum 变量的大小在 VS 2010 中不可调整。