exponenta event banner

Правило AUTOSAR C++ 14 A7-1-1

Спецификаторы Constexpr или const должны использоваться для объявления неизменяемых данных

Описание

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

Спецификаторы Constexpr или const должны использоваться для объявления неизменяемых данных.

Объяснение

Объявление переменной const или constexpr уменьшает вероятность случайного изменения переменной. Кроме того, компиляторы могут выполнять различные оптимизации для const и constexpr переменные для повышения производительности во время выполнения.

Внедрение 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 функция.

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

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