MISRA C:2012 Rule 16.7

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

Описание

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

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

Объяснение

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

Реализация Polyspace

Анализ распознает булевы типы, bool или _Bool (заданный в stdbool.h)

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

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

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

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

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