exponenta event banner

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

Переменная, которая не была изменена, должна быть квалифицирована как const

Описание

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

Переменная, которая не была изменена, должна быть квалифицирована как const.

Объяснение

Объявление переменной const уменьшает вероятность случайного изменения переменной.

Внедрение Polyspace

Средство проверки помечает параметры функции или локальные переменные, которые не являются согласованными, но никогда не изменяются в теле функции. Параметры функции типа integer, float, enum и boolean не помечены.

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

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

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

Примеры

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

#include <string.h>

char returnNthCharacter (int n) {
    char* pwd = "aXeWdf10fg" ; //Noncompliant
    char nthCharacter;
        
    for(int i=0; i < strlen(pwd); i++) {
        if(i==n)
            nthCharacter = pwd[i];
    }
    return nthCharacter;
}

В этом примере указатель pwd не является const-квалифицирован. Однако, кроме инициализации константой, она не переназначена нигде в returnNthCharacter функция.

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

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