exponenta event banner

MISRA C++: Правило 2008 0-1-3

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

Описание

Эта проверка деактивируется в анализе Polyspace ® по умолчанию в качестве кода. См. раздел Шашки, деактивированные в Polyspace как анализ кода по умолчанию (Polyspace Bug Finder Access).

Определение правила

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

Внедрение 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