枚举在 C 中可以包含的最大元素数是多少?

a3.*_*ity 3 c enums

我已经在 enum 中使用了大约 10 个元素。我想知道最大值,以便我可以正确编码。

San*_*ker 5

Anenum可以1023在符合要求的实现中至少保存枚举常量(参见 ISO/IEC 9899:1999 的第 5.2.4.1 节“翻译限制”)。所以这给了你一个下限。

由于枚举常量的类型是int参见 ISO/IEC 9899:1999 的第 6.4.4.3 节“枚举常量”),上限将是INT_MAX + 1(假设没有重复的枚举常量值),或者即使INT_MAX + 1 - INT_MIN您也使用负值。

任何实现都可以自由选择一个枚举可以包含多少个枚举常量,只要它在这些下限和上限之间。