Приоритет операторов в выражениях должен быть явным
Приоритет операторов в выражениях должен быть явным.
Язык C имеет большое количество операторов и их приоритет не интуитивно понятен. Неопытные программисты легко могут ошибаться. Удалите любую неоднозначность, используя круглые скобки для явного определения приоритета оператора.
В следующей таблице приведено определение приоритета оператора MISRA C ® для этого правила.
| Описание | Оператор и операнд | Предшествование |
|---|---|---|
| Предварительные выборы | идентификатор, константа, строковый литерал, (выражение) | 16 |
| Постфикс | [] () (вызов функции) . -> ++(после приращения) --(после уменьшения) () {}(C99: составные литералы) | 15 |
| Одноместный |
| 14 |
| Бросок | () | 13 |
| Мультипликативный | * / % | 12 |
| Добавка | + - | 11 |
| Побитовый сдвиг | << >> | 10 |
| Относительный | <> <= >= | 9 |
| Равенство | == != | 8 |
| Побитовое И | & | 7 |
| Побитовый XOR | ^ | 6 |
| Побитовое ИЛИ | | | 5 |
| ЛОГИЧЕСКОЕ И | && | 4 |
| Логическое ИЛИ | || | 3 |
| Условный | ?: | 2 |
| Назначение | = *= /= += -= <<= >>= &= ^= |= | 1 |
| Запятая | , | 0 |
Операнд логического% s не является первичным выражением. Приоритет операторов в выражениях должен быть явным.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Выражения |
| Категория: Консультационные услуги |
| СМЖЛ Категория: Консультативные услуги |