![]() |
Блин, я думал где-то такая чудо инфа имеется, спасибо:)
|
Читабельность любого кода это больше привычка форматировать код и давать понятные наименования переменным и командам, чем выбирать каким операторами его записывать).
На сколько мне известно анализ любого логического условия выполняется до тех пор пока у результата есть неопределенность: 1. a && b при a=false не будет дальше анализировать b, это излишняя операция 2. a || b при a=true не будет дальше анализировать b, это излишняя операция и т.д. Я придерживаюсь такой методики: Если условие простое и выполняется в одну операцию то стараюсь выполнять при помощи ? или if. Когда подразумевается многоступенчатая проверка if elseif ... то предпочитаю switch. На счет того что не видно какие условия проверки есть простой прием Код AS3:
|
Раз уж пошла такая пьянка, расскажите, как описанные выше способы соотносятся по быстродействию с хешами.
|
Свитч работает гораздо быстрее. Например,
if (val == 1) ... else if (val == 2) ... В данном случае проверяются все ифы, пока не дойдет до верного условия. А в случае с кейсом - компилятор строит такой код, который выполняет некоторые нехитрые арифметические операции с адресами, и таким образом происходит сразу прыжок на нужный код. Хотя я знаю, что это верно применительно к C++. |
godknowsiamgood, ни к С++ ни к АС ваши слова отношения не имеют.
|
Насколько я помню, оптимизирующие компиляторы C++ умеют делать таблицы перехода для больших switch (сотни case), вместо набора if'ов.
|
Цитата:
|
Цитата:
2iNils: не понял сути твоего поста =) |
Цитата:
|
Цитата:
It is well known that many C compilers will attempt to convert a switch statement into a jump table. |
| Часовой пояс GMT +4, время: 22:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.