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

Функциональные типы должны быть в прототипной форме с именованными параметрами

Описание

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

Функциональные типы должны быть в прототипной форме с именованными параметрами.

Объяснение

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

Реализация Polyspace

Средство проверки правила показывает нарушение, если параметры в объявлении функции или определении пропускают имена или типы данных.

Обменивайтесь сообщениями в отчете

  • Слишком много аргументов к function_name.

  • Слишком мало аргументов к function_name.

  • Функциональные типы должны быть в прототипной форме с именованными параметрами.

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

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

Примеры

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

extern int func(int);   /* Non compliant */
extern int func2(int n);   /* Compliant */

extern int func3();   /* Non compliant */
extern int func4(void);   /* Compliant */

В этом примере объявления func и func3 несовместимы, потому что параметры пропускают или не имеют имен.

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

Группа: объявления и определения
Категория: необходимый
Категория AGC: необходимый
Язык: C90, C99

Введенный в R2014b