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 |
Влияние: Низкое |