不应比较非同类枚举值
10.5.5 ID_differentEnumComparison
比较非同类枚举值相当于比较不同类别的事物,往往是设计缺陷或逻辑错误。
示例:
enum Fruit { apple, orange, banana };
enum Pet { hamster, chipmunk, chinchilla };
void foo(Fruit f) {
if (f == hamster) { // Non-compliant
....
}
}
void bar(Pet p) {
switch (p) {
case apple: // Non-compliant
....
break;
case chipmunk: // Compliant
....
break;
}
}
参考
CWE-697
MISRA C 2012 10.4