switch выражение имеет тип данных, отличный от char, short, int или enum
Этот дефект возникает при switch выражение имеет тип данных, отличный от char, short, int или enum.
Средство проверки помечает другие целочисленные типы данных, такие как логические типы, битовые поля или long.
Предпочтительно использовать char, short, int или enum в switch выражения вместо:
Логические типы, поскольку switch выражение с логическим типом можно заменить на if условие, которое вычисляет одно и то же выражение. A switch слишком тяжелое выражение для простого потока управления, основанного на логическом условии.
Битовые типы полей, поскольку битовые типы полей подразумевают ограничения памяти. Если требуется только указать переменную с конечным числом значений, то перечисления являются предпочтительными, поскольку они позволяют использовать более читаемый код.
Типы с размером больше int потому что switch выражение, для которого требуется тип с размером больше int подразумевает слишком много наклеек и может быть переработан.
Не целочисленные типы не поддерживаются в switch выражения.
Использовать переменные char, short, int или enum типы данных в switch выражения.
| Группа: Надлежащая практика |
| Язык: C | C++ |
| По умолчанию: Откл. |
Синтаксис командной строки:
INAPPROPRIATE_TYPE_IN_SWITCH |
| Воздействие: Низкий |