Приоритет и ассоциативность в программировании
В программировании порядок операций имеет решающее значение для правильного вычисления выражений. Приоритет операторов и ассоциативность играют решающую роль в определении этого порядка.
Кто определяет приоритет операторов и ассоциативность?
Стандарт конкретного языка программирования определяет приоритет операторов и ассоциативность. . Для C и C эти определения можно найти в грамматиках соответствующих языков.
Как определяется приоритет операторов?
Приоритет операторов устанавливает группировку операторов на основе их приоритет. Операторы с более высоким приоритетом оцениваются раньше операторов с более низким приоритетом. Эта иерархия определяется в грамматике языка.
Как определяется ассоциативность?
Ассоциативность определяет, как группируются смежные варианты использования одного и того же оператора. Например, если оператор ассоциативен слева направо, смежные варианты использования этого оператора связаны слева направо. Это правило также выведено из грамматики языка.
Отношение к порядку вычисления
Приоритет и ассоциативность операторов не контролируют напрямую порядок вычисления вызовов функций. Стандарт требует только, чтобы операнды оператора оценивались перед самим оператором. вправо не совсем точно. Хотя некоторые операторы, такие как оператор вызова функции, имеют ассоциативность слева направо, это не определяет порядок, в котором оцениваются вызовы функций.
Влияние ассоциативности
Рассмотрим пример f1() f2() * f3(). Оператор * имеет более высокий приоритет, чем оператор, поэтому выражения группируются как f1() (f2() * f3()). Однако порядок оценки вызовов функций не определяется ассоциативностью.
Другие аспекты последовательности
Конкретные операторы могут налагать ограничения последовательности при вычислении операндов. Например, в x || y, x всегда оценивается перед y. Это позволяет сократить поведение.
Исторический контекст
Точки последовательности ранее использовались в C и C для определения порядка оценки. Однако в современных стандартах для описания такого поведения принята концепция отношений «последовательность до».
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3