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