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

Директивам #include должны только предшествовать директивы препроцессору или комментарии

Описание

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

Директивам #include должны только предшествовать директивы препроцессору или комментарии.

Объяснение

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

Реализация Polyspace

Polyspace® отмечает текст, который предшествует директиве #include. Polyspace игнорирует директивы препроцессору, комментарии, пробелы или "новые строки".

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

Директивам #include должны только предшествовать директивы препроцессору или комментарии.

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

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

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

Группа: предварительная обработка директив
Категория: консультация
Категория AGC: консультация
Язык: C90, C99