Оба операнда оператора, в которых выполняются обычные арифметические преобразования, должны иметь одну и ту же категорию основных типов
Оба операнда оператора, в которых выполняются обычные арифметические преобразования, должны иметь одну и ту же категорию основных типов.
Использование неявных преобразований между типами может привести к непреднамеренным результатам, включая возможную потерю значения, знака или точности.
Для получения дополнительной информации о важных типах смотрите MISRA C:2012 Rule 10.1
.
Проверка вызывает нарушение этого правила, если два операнда операции имеют различные существенные типы. В сообщении о шашке указываются типы, обнаруженные на двух сторонах операции.
Шашка не поднимает нарушения этого правила:
Если один из операндов является постоянным нулями.
Если один из операндов является константой со знаком, а другой операнд не подписан, и константа со знаком имеет то же представление, что и ее беззнаковый эквивалент.
Например, оператор u8b = u8a + 3;
, где u8a
и u8b
являются unsigned char
переменные, не нарушают правило, потому что константы 3
и 3U
имеют то же представление.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
Группа: Модель Essential Type |
Категория: Требуемая |
Категория СМЖЛ: Консультационная |