[an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Bill 13 декабря 2002 г. 17:00
В ответ на: Ответ:Спасибо, как я понял в первом случае вычислятся 2 операнд не будет если первый дал ложь, это такк или они всегда вычисляются ? отправлено Smart 13 декабря 2002 г. 16:45


В случае && (логическое "И") второе условие (и все последующие) не будет вычисляться если первое будет "ЛОЖЬ". Хочу добавить, что вычисление условного выражения выполняется слева направо.
Это можно использовать для оптимизации программ, т.е. первым нужно ставить то условие, у которого наибольшая вероятность его невыполнения (значение "ЛОЖЬ").
В случае & (побитовое "И") вычисляются ВСЕ условия. Но здесь порядок их вычисления не оговаривается, и может быть изменен комплятором.

Это как раз тот случай когда поведение программы может зависеть от опций оптимизации компилятора. Об этом всегда следует помнитью

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru