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

Все операторы switch должны быть правильно построены

Описание

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

Все операторы switch должны быть правильно построены

Объяснение

Синтаксис для операторов switch в C не особенно строг и может позволить комплексное, неструктурированное поведение. Это правило и другие правила налагают простую сопоставимую структуру на оператор switch.

Реализация Polyspace

После спецификаций MISRA® средство проверки правил кодирования также повышает нарушение правила 16.1, если оператор switch нарушает одно из этих правил: 16.2, 16.3, 16.4, 16.5 или 16.6.

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

Все сообщения в файле отчета начинаются "с синтаксиса операторов switch MISRA-C нормативное ограничение".

  • Инициализаторы не должны использоваться в пунктах переключателя.

  • Дочерний оператор переключателя должен быть составным оператором.

  • Все пункты переключателя должны появиться на том же уровне.

  • Пункт переключателя должен только содержать метки переключателя и переключать пункты и никакой другой код.

  • Оператор switch должен только содержать метки переключателя и переключать пункты и никакой другой код.

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

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

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

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