规则 2.3 MISRA 项目不应包含未使用的类型声明

Rule 2.3 MISRA A project should not contain unused type declarations

"project" 是什么意思?

并在后续声明中

"If a type is declared but not used, then it is unclear to a reviewer if the type is redundant or it has been left unused by mistake."

"if type is redundant" 是什么意思?什么是冗余类型?

MISRA 文档没有包含 "project" 的严格定义。直观地说,项目可以定义为用于构建一组工件的源文件的集合。

本文中的冗余类型是指项目源代码中未使用的类型定义。使用最新版本的 gcc 和 clang 中的 -Wunused-local-typedefs 选项可以轻松检测到它们。

这是来自 MISRA-C:2012 2.x 的一系列规则,用简单的英语来说,你永远不应该声明任何实际上没有在程序中的任何地方使用的变量、类型、宏等.这是常识 - 冗余只是意味着不在任何地方使用。

但请注意,这些规则主要是为了静态分析器的利益而存在 - 这是您绝对希望自动化的检查类型。对于一般的关键任务系统,我们不允许有从未实际执行过的生产代码部分。甚至 "commented out" 的代码也不被允许。