Совместимое объявление должно быть видимым при определении объекта или функции с внешней связью
Совместимое объявление должно быть видимым при определении объекта или функции с внешней связью.
Если объявление отображается при определении объекта или функции, компилятор может проверить совместимость описания и определения.
Это правило с MISRA C:2012 Rule 8.5 применяет практику объявления объекта (или функции) в файле заголовка и включения файла заголовка в исходные файлы, которые определяют или используют объект (или функцию).
Средство проверки правил обнаруживает ситуации, в которых:
Объект или функция определяется без предыдущего объявления.
Существует несоответствие типов данных между объявлением объекта или функции и определением. Такое несоответствие также приводит к ошибке компиляции.
Теперь средство проверки помечает предварительные определения (переменные, объявленные без extern спецификатор и не определен явным образом). Чтобы избежать нарушения правила, объявите переменную static (определено только в одном файле) или объявить переменную extern и следуйте описанию с определением.
Глобальное определение variable_name не имеет предыдущего объявления.
Функция function_name не имеет видимого совместимого прототипа при определении.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Объявления и определения |
| Категория: Обязательно |
| СМЖЛ Категория: Консультативные услуги |
Check MISRA C:2012 (-misra3) | MISRA C:2012 Rule 17.3 | MISRA C:2012 Rule 8.2 | MISRA C:2012 Rule 8.3 | MISRA C:2012 Rule 8.5