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