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

Идентификатор, объявленный как объект или тип, должен быть определен в блоке, который минимизирует его видимость

Описание

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

Идентификатор, объявленный как объект или тип, должен быть определен в блоке, который минимизирует его видимость.

Объяснение

Определение переменных с минимально возможными возможностями блоков уменьшает вероятность того, что к ним можно будет позже получить непреднамеренный доступ.

Для образца, если объект предназначен для доступа только в одной функции, объявите объект локальным к функции.

Реализация Polyspace

Проверка правил определяет, используется ли объект только в одном блоке. Если объект используется в одном блоке, но задан вне блока, проверка вызывает нарушение.

Поиск и устранение проблем

Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».

Примеры

расширить все

static int countReset; //Noncompliant

volatile int check;

void increaseCount() {
    int count = countReset;
    while(check%2) {
     count++;
    }
}

В этом примере переменная countReset объявлен глобальным, используемым только в одной функции. Совместимое решение объявляет переменную локальной для функции, чтобы уменьшить ее видимость.

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

Группа: Основные концепции
Категория: Требуемая
Введенный в R2013b