Если составное выражение будет использоваться в качестве одного операнда оператора, в котором обычные арифметические преобразования выполняются затем, то другой операнд не должен иметь более широкого существенного типа
Если составное выражение будет использоваться в качестве одного операнда оператора, в котором выполняются обычные арифметические преобразования, то другой операнд не должен иметь более широкого существенного типа.
Составное выражение является непостоянным выражением с помощью составного оператора. В Существенной Модели Типа составные операторы:
Мультипликативный (*
, /
, %
)
Дополнение (бинарный +
двоичный файл-
)
Поразрядно (&
, |
, ^
)
Сдвиг (<<
, >>
)
Условное выражение (?
, :
)
Ограничение неявного преобразования по составным выражениям означает, что последовательности арифметических операций в рамках выражений должны использовать тот же существенный тип. Это ограничение уменьшает беспорядок и избегает потери значения, знака, точности или размещения. Однако это правило не подразумевает, что все операнды в выражении имеют тот же существенный тип.
Для получения дополнительной информации о существенных типах смотрите MISRA C:2012 Rule 10.1
.
Правильный операнд не должен иметь более широкого существенного типа, чем левый операнд, который является составным выражением.
Левый операнд не должен иметь более широкого существенного типа, чем правильный операнд, который является составным выражением.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: существенная модель типа |
Категория: необходимый |
Категория AGC: консультация |