exponenta event banner

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

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

Описание

Определение правила

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

Объяснение

Составное выражение является неконституционным выражением с использованием составного оператора. В модели основного типа составными операторами являются:

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

  • Аддитивный (бинарный +, двоичный -)

  • Побитовый (&, |, ^)

  • Смена (<<, >>)

  • Условный (?, :)

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

Дополнительные сведения об основных типах см. в разделе MISRA C:2012 Rule 10.1.

Дополнительное сообщение в отчете

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

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

Поиск неисправностей

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

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

Группа: Модель основного типа
Категория: Обязательно
СМЖЛ Категория: Консультативные услуги