3.2.2 Порядок вычисления
3.2.2 Порядок вычисления
Порядок вычисления подвыражений в выражении неопределен. Например
int i = 1; v[i] = i++;
может вычисляться или как v[1]=1, или как v[2]=1. При отсутствии ограничений на порядок вычисления выражения может генерироваться более хороший код. Было бы замечательно, если бы компилятор предупреждал о подобных неоднозначностях, но большинство компиляторов этого не делают.
Относительно операций amp; amp; и !! гарантируется, что их левый операнд вычисляется раньше, чем правый. Например, b=(a=2,a=1) присвоит b 3.В #3.3.1приводятся примеры использования amp; amp; и !!. Заметьте, что операция следования , (запятая) логически отличается от запятой, которая используется для разделения параметров в вызове функции. Рассмотрим
f1(v[i],i++); // два параметра f2( (v[i],i++) ) // один параметр
В вызове f1 два параметра, v[i] и i++, и порядок вычиления выражений-параметров неопределен. Зависимость выражения -параметра от порядка вычисления – это очень плохой стиль, а также непереносимо. В вызове f2 один параметр, выражение с запятой, которое эквивалентно i++.
С помощью скобок нельзя задать порядок вычисления. Например, a*(b/c) может вычисляться и как (a*b)/c, поскольку * и / имеют одинаковый приоритет. В тех случаях, когда важен прядок вычисления, можно вводить дополнительную переменную, например, (t=b/c,a*t).
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Оптимизируем вычисления
Оптимизируем вычисления Google Gears ( http://gears.google.com/ ) обеспечивает выполнение напряженных вычислений без двух вышеоговоренных ограничений. Однако в общем случае нельзя полагаться на наличие Gears (в будущем было бы замечательно, чтобы решение по типу Gears WorkerPool API стало частью
Сетевые вычисления
Сетевые вычисления В компьютерной индустрии любят революции. В центре внимания постоянно находятся принципиально новые модели вычислений. Газеты, журналы, консультанты и эксперты до небес превозносят их достоинства и убеждают Вас немедленно применить их на деле. Но
Совместные вычисления
Совместные вычисления Рабочим группам, состоящим из сотрудников одной или нескольких организаций, необходимо взаимодействие и разделение информации. В этой связи многих привлекает клиент-серверное ПО для рабочих групп, обычно называемое групповым ПО (groupware). В основе
10.13.7 Вычисления после повторной отправки
10.13.7 Вычисления после повторной отправки В представленных выше формулах используется значение времени цикла как интервала между отправкой сегмента и получением подтверждения его приема. Однако предположим, что в течение периода тайм-аута подтверждение не получено и
3.4.1. Порядок вычисления операндов
3.4.1. Порядок вычисления операндов Эта проблема связана с тем, что у человека есть определенные интуитивные представления о порядке выполнения действий программой, однако компилятор не всегда им соответствует. Рассмотрим следующий код (листинг 3.47, пример OpOrder на
Порядок вычисления в формулах
Порядок вычисления в формулах Чтобы формула выдавала верный результат, необходимо учитывать порядок вычисления в ней. В этом нет ничего сложного, главное – проявлять внимательность при расстановке знаков в формуле.Для следующего примера создайте таблицу, изображенную
Простейшие вычисления
Простейшие вычисления Вы вручную ввели данные и выровняли колонки, но это можно было сделать и в Word. Теперь следует изучить специфические возможности Excel.В ячейках Excel можно размещать не только числа и текст, но и формулы. В этом случае в ячейке будет виден результат
Операция последовательного вычисления
Операция последовательного вычисления Операция последовательного вычисления последовательно вычисляет два своих операнда, сначала первый, затем второй. Оба операнда являются выражениями. Синтаксис операции:<выражение1>, <выражение2>Знак операции - запятая,
Контекст вычисления выражений
Контекст вычисления выражений Выражения всегда вычисляются в некотором контексте — окружении, которое зависит от того, какая часть документа обрабатывается XSLT-процессором в данный момент, и какие объявления присутствовали в самом преобразовании.Контекст
Контекст вычисления выражений
Контекст вычисления выражений Как мы видели ранее, в XSLT одно и то же правило преобразования может применяться к различным частям XML-документа и в каждом случае результат будет разным — в зависимости от того, как выглядит обрабатываемый фрагмент. Подобно этому,
ТЕХНОЛОГИИ: Параллельные вычисления: кластеры
ТЕХНОЛОГИИ: Параллельные вычисления: кластеры Авторы: Сергей Озеров, Алексей КалиниченкоВершина современной инженерной мысли - сервер Hewlett-Packard Integrity Model SD64A. Огромная SMP-система, объединяющая в себе 64 процессора Intel Itanium 2 с частотой 1,6 ГГц и 256 Гбайт оперативной памяти,
Вычисления, основанные на компонентах
Вычисления, основанные на компонентах В ОО-вычислениях существует только один базовый вычислительный механизм. Есть некоторый объект, всегда являющийся (в силу предыдущего правила) экземпляром некоторого класса, и вычисление состоит в том, что данный объект вызывает
Ингредиенты вычисления
Ингредиенты вычисления При поиске правильной архитектуры ПО критическим является вопрос о модуляризации: какие критерии нужно использовать при выделении модулей наших программ? Чтобы верно ответить на него, нужно сравнить соперничающих кандидатов.
Итоговые вычисления в таблицах
Итоговые вычисления в таблицах В Excel имеются средства для расчета итоговых данных в таблицах и их анализа. Например, с помощью команды Промежуточные итоги можно автоматически разделить таблицу на группы и для каждой из них рассчитать итоговые значения.Мощным