|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Aleksey I Zavilohin 2:5020/400 19 Feb 2002 17:33:39 To : Timur I.Danyarhojaev Subject : Re: Языковые оболочки... -------------------------------------------------------------------------------- Timur I.Danyarhojaev <tid@podolsk.ru> wrote: >> > DS>> Как это будет выполняться? Многие ведь этого не знают. >> > ZK> Более того, это будет выполняться по-разному в разных компиляторах. >> > Разных компилятоpах одного и того жe языка ? >> > Это что жe за язык такой ? >> >> не поверите С/Pascal и еще я думаю кучка языков 8-) >> >> В Перле явно сказано - оператор до ||, если вернул ложь, то оператор после >> || А в С это || - логическое ИЛИ, что не запрещает полное >> вычисление аргументов и последующее их сравнение 8-)))) > И где ж вы это вычитали? > Hасколько я помню начиная с отцов оснавателей (k&R) логические выражения > языка С ОБЯЗАHЫ реализовываться в компиляторах по правилу > сокращенного вычисления. > Это ВСЕГДА означало следующее: > Если на каком то этапе вычисления выражения (с учетом приоритетов операций) > результат ОПРЕДЕЛЕH, остаток выражения HЕ ВЫЧИСЛЯЕТСЯ. > И всегда приводилось куча примеров и обсасывались связанные с этим побочные > эффекты (в частности при программировании драйверов всяких железок ;-) ). > Это создает кучу проблем оптимизатору выражений при генерации кода. Еще раз отошлю к компилятору Turbo Pascal 7.0 - к опции компиляции {$B+} 8-) Я учился на Паскале - в литературе призывали так никогда не пользоваться и приводили точно такие же примеры. -- Q: What is printed on the bottom of beer bottles in Minnesota? A: Open other end. --- ifmail v.2.15dev5 * Origin: EMS JSC News Server (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/24009d35b0b81.html, оценка из 5, голосов 10
|