明确将C / C ++枚举从0开始的原因


如何解决明确将C / C ++枚举从0开始的原因?

我知道标准指出,如果您不指定第一个元素的值,则枚举的起始值将认为0
但是例如在Linux内核源代码中,我数十次遇到了奇怪的声明。例如numa_faults_stats


 
  1. enum numa_faults_stats {
  2. NUMA_MEM = 0,NUMA_cpu,NUMA_MEMBUF,NUMA_cpuBUF
  3. };

将此枚举的第一个元素显式设置为0有什么需要?

Related post

解决方法

在C和C ++中,有很多关于各种事物的规则:这是其中之一。有时,为了清楚起见,最好是明确的。

另一种常见的用法是在函数原型中使用变量名(只需要类型)。还有一种是用两种语言的return 0;中的main。在C ++ publicprivate中显式使用classstruct是另一种方法。

,

您可以使用枚举,而不必关心它的值,就像仅使用它们之间的互补关系一样。但是有时候它的价值很重要。您可以将is用作数组的索引。例如。

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/291025.html

(0)
上一篇 2022年10月14日
下一篇 2022年10月14日

相关推荐

发表回复

登录后才能评论