exponenta event banner

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

Все директивы # else, # elif и # endif препроцессора должны находиться в том же файле, что и директивы # if, # ifdef или # ifndef, с которыми они связаны.

Описание

Определение правила

Все директивы # elf, # elif и # endif препроцессора должны находиться в том же файле, что и директивы # if, # ifdef или # ifndef, с которыми они связаны.

Объяснение

Когда условные директивы компиляции включают или исключают блоки кода и распределяются по нескольким файлам, возникает путаница. При прекращении #if директива в том же файле уменьшает визуальную сложность кода и вероятность ошибки.

В случае прекращения #if директивы в том же файле, вы можете использовать #if директивы во включенных файлах

Дополнительное сообщение в отчете

  • "# else" не входит в условный ".

  • # elseif не входит в условный.

  • "# endif" не входит в условный ".

    Условная директива без окончания.

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

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

Группа: Директивы предварительной обработки
Категория: Обязательно
Категория СМЖЛ: требуется