MISRA C:2012 Rule 16.3

Безусловный оператор завершения должен отключить каждый пункт переключателя

Описание

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

Безусловный оператор завершения должен отключить каждый пункт переключателя

Объяснение

Пункт переключателя является случаем, содержащим по крайней мере один оператор. Две последовательных метки без прошедшего оператора совместимы с MISRA®.

Если вам не удается закончить ваши пункты переключателя оператором завершения, то поток управления “падает” в следующий оператор. Этот следующий оператор может быть другим пунктом переключателя или концом переключателя. Это поведение является иногда намеренным, но чаще это - ошибка. Если вы добавляете дополнительные случаи позже, неотключенный пункт переключателя может вызвать проблемы.

Реализация Polyspace

Polyspace® повышает предупреждение для каждого несовместимого case пункт.

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

Безусловный оператор завершения должен отключить каждый пункт переключателя.

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

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

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

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