Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значений
Символ со знаком и символьный тип без знака должны только использоваться для устройства хранения данных и использования числовых значений.
На C/C++ существует три типа char
:
Плоскость char
signed char
unsigned char
Со знаком из плоскости char
задан реализацией. Плоскость char
не может взаимозаменяемо использоваться с другими типами. Например, вы можете принять char
без знака и использование unsigned char
сохранить символ. Ваша реализация может интерпретировать символы, как подписано. В такой ситуации ваш код может вести себя неожиданным способом, ведя к ошибкам, которые затрудняют, чтобы диагностировать.
MISRA C ++:2008 пределов использование этих трех типов char
для различных приложений. signed
и unsigned char
тип подходит для числовых значений и устройства хранения данных. Плоскость char
подходит для символьных данных. Избегайте использования signed
или unsigned char
когда вы намереваетесь использовать плоскость char
.
Это правило также применяется к различному typedef
из них char
типы, такие как uint8_t
и int8_t
. Смотрите MISRA C++:2008 Rule 3-9-2
.
Polyspace® повышает нарушение этого правила когда плоскость char
неявно преобразован в любой signed char
или unsigned char
.
Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.
Группа: Выражения |
Категория: необходимый |
Check MISRA C++:2008 (-misra-cpp)
| MISRA C++:2008 Rule 3-9-2