为什么 C 中没有枚举的增量运算符?即使相应的整数值是用户定义的,对我来说,使用 ++
进行迭代也非常有意义。到下一个成员。
为了更清楚
typedef enum myenum t_myEnum;
enum myenum {
eMember1,
eMember2
}
t_myEnum bla = eMember1;
现在我问反对bla++
的理由是什么?产量eMember2
.
用户定义的整数值分配,例如
enum myenum {
eMember1 = 0,
eMember2 = 10
}
我认为这不应该成为障碍。
最佳答案
我确信这是 C 和 C++ 的缺点。
最初,枚举被视为整数常量集,作为指令 #define
的替代方案。因此,C 中的枚举是一组此类常量的通用名称。它们尽可能简单。:)
C++ 向前迈出了一步,枚举器开始拥有枚举类型。你也可以为枚举重载运算符++,尽管我同意你的观点,最好将这些运算符内置起来。
例如,枚举可以以与 C++ 中的 std::initializer_list 类似的方式实现。
所以在我看来,这些运营商的缺席只是历史原因。
另一个缺点是无法获取枚举中定义的枚举数的数量。
关于c - 为什么 C 中没有枚举的增量运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36010226/