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++ |
| По умолчанию: Off |
Синтаксис командной строки
: INAPPROPRIATE_TYPE_IN_SWITCH |
| Влияние: Низкое |