MISRA C++:2008 Rule 0-1-3

Проект не должен содержать неиспользуемые переменные

Описание

Это средство проверки деактивировано в Polyspace по умолчанию® как Вы Анализ кода . Смотрите Средства проверки, Деактивированные в 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;
}

Проверяйте информацию

Группа: независимые от языка проблемы
Категория: необходимый
Введенный в R2018a