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

Типы должны быть явным образом заданы

Описание

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

Типы должны быть явным образом заданы.

Объяснение

При некоторых обстоятельствах можно не использовать типы из стандарта C90. В тех случаях неявно задан тип int. Однако пропуск явного типа может привести к беспорядку. Например, в объявлении extern void foo (char c, const k);, типом k является const int, но вы можете ожидать const char.

Вы можете использовать неявный тип в:

  • Объектные объявления

  • Объявления параметра

  • Объявления элемента

  • Объявления typedef

  • Функциональные типы возврата

Реализация Polyspace

Средство проверки правила отмечает ситуации, куда параметр функции или возвращается, тип явным образом не задан. Чтобы позволить проверять этого правила, используйте значение c90 для опции C standard version (-c-version).

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

Типы должны быть явным образом заданы.

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

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

Примеры

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

static foo(int a);  /* Non compliant */
static void bar(void);      /* Compliant */

В этом примере нарушено правило, потому что тип возврата foo неявен.

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

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

Введенный в R2014b