MISRA C:2012 Rule 16.7

Выражение switch не должно иметь по существу логического типа

Описание

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

Выражение switch не должно иметь по существу логического типа

Объяснение

Стандарт C требует управляющего выражения для switch оператор, имеющий целый тип. Поскольку C реализует логические значения с целыми типами, возможно, что логическое выражение управляет switch оператор. Для управления потоком с помощью булевых типов, if- else конструкция более уместно.

Реализация Polyspace

Анализ распознает логические типы, bool или _Bool (определено в stdbool.h)

Можно также задать типы, которые по существу являются логическими с помощью опции Effective boolean types (-boolean-types).

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

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

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

Группа: Операторы Switch
Категория: Требуемая
Категория СМЖЛ: Консультационная