exponenta event banner

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

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

Описание

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

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

Объяснение

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

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

Внедрение Polyspace

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

Поиск неисправностей

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

Примеры

развернуть все

static int countReset; //Noncompliant

volatile int check;

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

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

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

Группа: Основные понятия
Категория: Обязательно
Представлен в R2013b