MISRA C:2012 Rule 8.2

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

Описание

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

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

Объяснение

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

Реализация 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: необходимый
Введенный в R2014b