exponenta event banner

MISRA C:2012 Правило 17.8

Не следует изменять параметр функции

Описание

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

Параметр функции не должен изменяться.

Объяснение

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

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

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

Примеры

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

int input(void);

void func(int param1, int* param2) {
    
    param1 = input();   /* Non-compliant */
    *param2 = input();  /* Compliant */
}

В этом примере правило нарушается, когда параметр param1 изменяется.

Правило не нарушается, если параметр является указателем param2 и *param2 изменяется.

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

Группа: Функции
Категория: Консультационные услуги
Категория СМЖЛ: удобочитаемость
Представлен в R2015b