Правило 10.7 MISRA C:2012

Если составное выражение будет использоваться в качестве одного операнда оператора, в котором обычные арифметические преобразования выполняются затем, то другой операнд не должен иметь более широкого существенного типа

Описание

Управляйте определением

Если составное выражение будет использоваться в качестве одного операнда оператора, в котором выполняются обычные арифметические преобразования, то другой операнд не должен иметь более широкого существенного типа.

Объяснение

Составное выражение является непостоянным выражением с помощью составного оператора. В Существенной Модели Типа составные операторы:

  • Мультипликативный (*, /, %)

  • Дополнение (бинарный +, бинарный -)

  • Поразрядно (&, |, ^)

  • Сдвиг (<<, >>)

  • Условное выражение (?, :)

Ограничение неявного преобразования по составным выражениям означает, что последовательности арифметических операций в рамках выражений должны использовать тот же существенный тип. Это ограничение уменьшает беспорядок и избегает потери значения, знака, точности или размещения. Однако это правило не подразумевает, что все операнды в выражении имеют тот же существенный тип.

Обменивайтесь сообщениями в отчете

  • Правильный операнд не должен иметь более широкого существенного типа, чем левый операнд, который является составным выражением.

  • Левый операнд не должен иметь более широкого существенного типа, чем правильный операнд, который является составным выражением.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Проверяйте информацию

Группа: существенная модель типа
Категория: необходимый
Категория AGC: консультация
Язык: C90, C99