c语言 - 当可以保留编译器设置时,为什么要显式设置枚举的值?



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

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

即使规范中的值恰好是连续的,也最好显式地输入它们。如果您以错误的顺序输入成员,或者稍后有人将成员插入到列表的中间,那么省略它们就更容易出错。

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

相关内容

  • 没有找到相关文章

最新更新