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

类型名称不应重复定义

6.1.6 ID_duplicatedTypeName
目录 › next › previous

如果类型相关的名称有重复,极易引起误解,不利于阅读和维护,对于:

  • C++ 类、联合体、枚举类型的名称
  • C 结构体、联合体、枚举类型的标签名称
  • 用 typedef 或 using 定义的类型别名

均不应重复定义。

示例:

typedef double A;

void foo() {
    typedef float A;   // Non-compliant
    typedef short B;
    ....
}

void bar() {
    typedef short B;   // Non-compliant, even if they are identical
    ....
}

例外:

namespace N {
    typedef double A;
}
namespace M {
    typedef float A;   // Compliant
}

如果类型定义处于不同的命名空间,可不受本规则约束。

参考

MISRA C 2004 5.3 MISRA C 2004 5.4 MISRA C 2012 5.6 MISRA C 2012 5.7 MISRA C++ 2008 2-10-3 MISRA C++ 2008 2-10-4
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.