exponenta event banner

MISRA C:2012 Правило 8.9

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

Описание

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

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

Объяснение

При определении объекта в области действия блока вероятность непреднамеренного доступа к объекту вне блока снижается.

Внедрение Polyspace

Флаги средства проверки правил static объекты, доступ к которым осуществляется только в одной функции, но которые объявлены в области файла.

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

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

Примеры

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

static int ctr;   /* Non compliant */

int checkStatus(void);
void incrementCount(void);

void incrementCount(void) {
    ctr=0;
    while(1) {
        if(checkStatus())
            ctr++;
    }
}

В этом примере объявление ctr несовместим, поскольку объявлен в области файла, но используется только в функции incrementCount. Объявить ctr в теле incrementCount должен быть совместим с MISRA C ®.

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

Группа: Объявления и определения
Категория: Консультационные услуги
СМЖЛ Категория: Консультативные услуги
Представлен в R2014b