Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch
Примечание
Используйте Bug Finder вместо Code Prover для проверки правил кодирования. Поддержка кодирования правил, регистрируясь в Code Prover будет удалена в будущем релизе. См. Вопросы совместимости.
Метка переключателя должна только использоваться, когда наиболее тесно заключающий составной оператор будет телом оператора switch
Стандарт C разрешает помещать метку переключателя (например, case
или default
) прежде чем любой оператор содержится в теле оператора switch. Эта гибкость может привести к неструктурированному коду. Чтобы предотвратить неструктурированный код, убедитесь, что метка переключателя появляется только на наиболее удаленном уровне тела оператора switch.
Все сообщения в файле отчета начинаются "с синтаксиса операторов switch MISRA-C нормативное ограничение".
Инициализаторы не должны использоваться в пунктах переключателя.
Дочерний оператор переключателя должен быть составным оператором.
Все пункты переключателя должны появиться на том же уровне.
Пункт переключателя должен только содержать метки переключателя и переключать пункты и никакой другой код.
Оператор switch должен только содержать метки переключателя и переключать пункты и никакой другой код.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: операторы switch |
Категория: необходимый |
Категория AGC: консультация |