VS 2010 中的枚举大小选项
enum size option in VS 2010
我可以在 Visual Studio 2010 中设置一些选项来将 enum 大小更改为 1 字节 吗?禁止更改代码。我需要一些编译选项。
您可以讨论两种逻辑上不同的大小:与给定枚举类型关联的枚举 常量 的大小,或者其自身类型为枚举类型。例如,给定
enum example { ONE, TWO };
enum example enum_variable;
第一个声明同时声明了类型 enum example
和常量 ONE
和 TWO
。
也许令人惊讶的是,常量 而不是 的类型是 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 中不可调整。
我可以在 Visual Studio 2010 中设置一些选项来将 enum 大小更改为 1 字节 吗?禁止更改代码。我需要一些编译选项。
您可以讨论两种逻辑上不同的大小:与给定枚举类型关联的枚举 常量 的大小,或者其自身类型为枚举类型。例如,给定
enum example { ONE, TWO };
enum example enum_variable;
第一个声明同时声明了类型 enum example
和常量 ONE
和 TWO
。
也许令人惊讶的是,常量 而不是 的类型是 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 中不可调整。