Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
通常我看到enum { A = 1, B = 2, C = 3, ... }是否有一些特殊的原因只设置A值并将编译器设置下一个值设置为前一个成员值 + 1 或者这个程序员正在尝试编写更具可读性的代码或类似的东西?
enum { A = 1, B = 2, C = 3, ... }
A
这是一个风格问题。指定这些值表明您的应用程序关心每个枚举所采用的特定值,可能是因为它用于实现已发布的标准,或者用于与接口指定特定整数的其他应用程序的互操作性。
即使规范中的值碰巧是连续的,最好明确地输入它们。如果您以错误的顺序输入成员,或者稍后有人在列表中间插入成员,则将它们排除在外会更容易出错。
另一方面,如果您不关心具体的值是什么,而只需要编译器为每个枚举成员分配任意唯一值,您可以将这些值排除在外,让编译器自动完成。这适用于仅在应用程序内部使用的枚举。