C ++中是否存在允许的enum
元素的最大数量?
(问题来自我之前关于defines的问题的答案)
答案 0 :(得分:11)
没有任何指定的最大值或最小值,这取决于您的实现。但是,请注意附件B指出:
- 单个枚举中的枚举常量[4096]。
作为推荐。但这绝对是一项建议,而非要求。
答案 1 :(得分:4)
语言没有指定任何此类内容。但是,编译器可能有限制。您必须检查编译器文档。
答案 2 :(得分:1)
在C的情况下,枚举只是一个更好的范围#define
s。无论从标准C中详细说明什么:枚举值是
与...兼容的类型 实现定义的一个 积分类型。
我的猜测是C ++有一个类似的定义,C ++ 0x增加了一些打字的可能性。所有这一切意味着你可以拥有它们的数量在理论上受到基础类型的限制(无论它是什么?int
大部分时间,我想,C标准对此不够清楚)。但在您设置数百万个符号之前,您的编译器将崩溃或可能耗尽内存。