ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
13 июля
455503 Топик полностью
Ксения (20.10.2013 02:21, просмотров: 53) ответил zeleny на switch vs if - почему первый не работает ?
Уже было сказано, что после case должно стоять константное выражение. Но от себя добавлю, что компилируется switch в виде двух массивов (обычно помещаемых по flash!): в одном из них перечислены case-константы, а во-втором соответствующий им список адресов, куда прыгать, есть данный case совпал. Реализация выбора состоит поиске совпадения switch-выражения в массиве констант (в порядке следования), а в случае совпадения - перескок по адресу из элемента адресного массива с тем же самым индексом. Т.е. при длинных списках switch компилируется короче, т.к. алгоритм "поиск + переход по индексу" один и тоже для всех switch в программе.