一般来说,我看到enum { A = 1, B = 2, C = 3, ... }有一些特殊的原因只是设置A值并将编译器的下一个值设置为前一个成员值+ 1,或者这个程序员尝试使代码更具可读性或类似的东西?
这是一个风格问题.指定值表示您的应用程序关心每个枚举所采用的特定值,可能是因为它用于实现已发布的标准,或者与其接口指定特定整数的其他应用程序的互操作性.
即使规范中的值恰好是顺序的,最好明确输入它们.如果您以错误的顺序输入成员,或者某人稍后在列表中间插入成员,则将它们排除会更容易出错.
另一方面,如果您不关心特定值是什么,并且只需要编译器为每个枚举成员分配任意唯一值,则将值保留,让编译器自动执行.这适用于仅在应用程序内部使用的枚举.