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

不应比较非同类枚举值

10.5.5 ID_differentEnumComparison
目录 › next › previous

比较非同类枚举值相当于比较不同类别的事物,往往是设计缺陷或逻辑错误。

示例:

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
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.