主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

AUTOSAR C++14 Rule M0-1-3

A project shall not contain unused variables

描述

默认 Polyspace® as You Code 分析中反激活了此检查项。请参阅Checkers Deactivated in Polyspace as You Code Analysis (Polyspace Access)

规则定义

A project shall not contain unused variables.

理由

未使用的变量存在表明源代码中可能使用了错误的变量名。移除这些变量可以减少在后续开发中使用错误变量的可能性。保持位字段中的填充位未命名,以减少工程中的未使用变量。

Polyspace 实现

检查项会标记在工程的任何源文件中声明或定义但未读取或写入的局部或全局变量。本规范也适用于结构体和类的成员。

故障排除

如果您预期会出现违规,而 Polyspace 未报告该违规,请参阅诊断为何编码规范违规未按预期显示

示例

全部展开

#include <iostream>
struct S {
    unsigned char b1 : 3;
    unsigned char pad: 1;  //Noncompliant
    unsigned char b2 : 4;
};
void init(struct S S_obj)
{
    S_obj.b1 = 0;
    S_obj.b2 = 0;
}

在此示例中,位字段 pad 用于填充结构。因此,该字段不会被读取或写入,从而导致违反此规则。为避免违规,请使用未命名的字段进行填充。


#include <iostream>
struct S {
    unsigned char b1 : 3;
    unsigned char : 1;  //Compliant
    unsigned char b2 : 4;
};
void init(struct S S_obj)
{
    S_obj.b1 = 0;
    S_obj.b2 = 0;
}

检查信息

组:与语言无关的问题
类别:必需、自动

版本历史记录

在 R2019a 中推出