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