2

通常我看到enum { A = 1, B = 2, C = 3, ... }是否有一些特殊的原因只设置A值并将编译器设置下一个值设置为前一个成员值 + 1 或者这个程序员正在尝试编写更具可读性的代码或类似的东西?

4

1 回答 1

5

这是一个风格问题。指定这些值表明您的应用程序关心每个枚举所采用的特定值,可能是因为它用于实现已发布的标准,或者用于与接口指定特定整数的其他应用程序的互操作性。

即使规范中的值碰巧是连续的,最好明确地输入它们。如果您以错误的顺序输入成员,或者稍后有人在列表中间插入成员,则将它们排除在外会更容易出错。

另一方面,如果您不关心具体的值是什么,而只需要编译器为每个枚举成员分配任意唯一值,您可以将这些值排除在外,让编译器自动完成。这适用于仅在应用程序内部使用的枚举。

于 2013-01-04T02:27:45.053 回答