История изменений
Исправление rmammoth, (текущая версия) :
И это называется «менять порядок вычислений»
А как это еще назвать? http://www.5byte.ru/tp7pub/0013.php :
Следует иметь в виду что в пределах одного и того же приоритета действия не обязательно выполняются слева направо. В целях оптимизации программы компилятор может нарушить этот порядок вычисления. Исключение составляют укороченные логические вычисления логических выражений, где вычисления всегда выполняются слева направо.
Для тех кто в танке: допустим A, B, C, ..., Z — функции, возвращающие булево значение. Тогда при вычислении выражения A and B and C and ... and Z в «коротком» режиме они будут вызываться в указанной последовательности, пока не вызовутся все или пока очередной вызов не вернет false, а в «длинном» — будут вызваны все функции, причем в неопределенном порядке. И всё это переключается ключиком компилятора, красота да и только.
Я вижу, тут все знатные знатоки знаний о паскале собрались :D
Исправление rmammoth, :
И это называется «менять порядок вычислений»
А как это еще назвать? http://www.5byte.ru/tp7pub/0013.php :
Следует иметь в виду что в пределах одного и того же приоритета действия не обязательно выполняются слева направо. В целях оптимизации программы компилятор может нарушить этот порядок вычисления. Исключение составляют укороченные логические вычисления логических выражений, где вычисления всегда выполняются слева направо.
Для тех кто в танке: допустим A, B, C, ..., Z — функции, возвращающие булево значение. Тогда при вычислении выражения A and B and C and ... and Z в «коротком» режиме они будут вызываться в указанной последовательности, пока не вызовутся все или пока очередной вызов не вернет false, а в «длинном» — будут вызваны все функции, причем в неопределенном порядке.
Я вижу, тут все знатные знатоки знаний о паскале собрались :D
Исходная версия rmammoth, :
И это называется «менять порядок вычислений»
А как это еще назвать? http://www.5byte.ru/tp7pub/0013.php :
Следует иметь в виду что в пределах одного и того же приоритета действия не обязательно выполняются слева направо. В целях оптимизации программы компилятор может нарушить этот порядок вычисления. Исключение составляют укороченные логические вычисления логических выражений, где вычисления всегда выполняются слева направо.
Для тех кто в танке: допустим A, B, C, ..., Z — функции, возвращающие булево значение. Тогда при вычислении выражения A and B and C and ... and Z в «коротком» режиме они будут вызываться в указанной последовательности, пока не вызовутся все или пока очередной вызов не вернет false, а в «длинном» — будут вызваны все функции, причем в неопределенном порядке.