☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

合理初始化各枚举项

5.2.2 ID_casualInitialization
目录 › next › previous

同类枚举项的初始化只应从下列方式中选择一种:

  • 全部隐式初始化
  • 只显式初始化第一个枚举项
  • 全部显式初始化为不同的值

枚举项可以隐式初始化,由编译器分配不同的值,首项为 0,后续各项依次增 1,也可以显式初始化,由 = 和初始化表达式指定某具体值,应合理初始化各枚举项,避免产生冲突。

示例:

enum Color {
    red,
    blue,
    green,
    yellow = 2   // Non-compliant
};

例中隐式初始化的 green 和显式初始化的 yellow 具有相同的值,属于常见笔误。

应改为:

enum Color {
    red,
    blue,
    green,
    yellow   // Compliant
};

相关

ID_duplicateEnumerator

参考

MISRA C 2004 9.3 MISRA C++ 2008 8-5-3 SEI CERT INT09-C
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.