MISRA C++:2008 Rule 7-1-1

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

Описание

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

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

Объяснение

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

Реализация Polyspace

Шашка помечает параметры функции или локальные переменные, которые не являются определенными, но никогда не изменяются в теле функции. Параметры функции целочисленного, плавающего, перечисленного и логического типов не помечены.

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

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

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

Примеры

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

#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