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

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

Описание

Управляйте определением

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

Объяснение

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

Реализация Polyspace

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

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

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

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Примеры

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

#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