【发布时间】:2014-07-18 13:59:43
【问题描述】:
我正在阅读 C++ 编程语言 - Bjarne S.
在第 77 页,第 4.8 节我发现:
"一个枚举数可以被一个常量表达式初始化 (§C.5) 的整数类型 (§4.1.1)。这 枚举范围保存枚举的所有枚举值,四舍五入到最接近的值 更大的二进制幂 - 1 。如果最小的枚举数是非负数,则范围下降到 0 如果最小的枚举数是负数,则到最接近的较小的负二进制幂。这定义了 最小位域 能够保存枚举数的值。例如:
enum e1 { d a r k , l i g h t }; // range 0:1
enum e2 { a = 3 , b = 9 }; // range 0:15
enum e3 { m i n = 10 , m a x = 1 0 0 0 0 0 0 }; // range -1048576:1048575
我不明白为什么 enum3 有这个范围
(1048576:1048575)? - (- 2^20 : 2^20 - 1)
【问题讨论】:
-
如果您有实际问题,您可以将其包含在您的帖子中。
-
你说的准确吗?如果是这样,那似乎是错误的。也许
min应该是-10? -
您应该提及您引用的版本。有多个版本。