![]() |
1
14
前者的唯一优点是它向后兼容古老的C标准。 除此之外,后一种替代方案更为优越,因为它可以确保数据完整性,即使修改了枚举或项目更改了位置。但是,应通过检查来完成,以确保枚举中的项数与查找表中的项数相对应:
以上是实现简单“枚举-查找表”耦合的最佳方法。另一种选择是使用结构,但这更适合于更复杂的数据类型。 最后,作为补充说明,第三个版本将使用“X宏”。除非您有关于代码重复和维护的专门要求,否则不建议这样做。为了完整起见,我会将其包括在这里,但我不建议在一般情况下使用:
|
![]() |
2
3
另一种可能是使用函数,而不是数组:
如果添加枚举值但忘记添加匹配的开关大小写,gcc至少会发出警告。
(我想你可以试试做这种功能
附录:我提到的gcc警告仅适用于
还可以包含越界值:
(最后一个片段还有一些额外的限制,但这个附录已经很长了,所以我现在不想再赘述了。) |
![]() |
3
0
另一种可能性是用户
尽管使用它有许多缺点,但主要的好处是
|
![]() |
H.v.M. · 为最后一个枚举值指定不同的变量值 3 年前 |
|
JimmyDiJim · 在声明后定义枚举变量 7 年前 |
![]() |
Eli K · 语法错误,插入“{”以完成枚举体(在类的末尾) 7 年前 |
![]() |
Vivek Shukla · 在中间添加枚举 7 年前 |
![]() |
DannyD · 如何访问typescript中的枚举名称 7 年前 |