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