AUTOSAR C++14 Rule A7-1-1

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

Описание

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

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

Объяснение

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

Реализация 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 функция.

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

Группа: Декларация
Категория: Необходимый, Автоматизированный
Введенный в R2020b