Цитата(alx2 @ Apr 17 2009, 16:12)

Немного отвлеченный вопрос: а откуда берется этот самый index? Не проще ли вместо индекса сразу работать с указателем на нужный код? Не нужно было бы получать указатель из таблицы...
index - это переключатель свитча
Данный подход выгоден, когда есть переключатель на большое количество индексируемых состояний.
Например, стэйт машин или обработчик кодов команд (параметров, etc)
То есть пишем switch(comand_code<<1,[список меток]) и максимально быстро перескакиваем на обработчик нужной команды
Цитата(ReAl @ Apr 17 2009, 16:27)

Где размер увеличился? Ни на грамм, переменная s_e_i_r_I не создаётся вообще, этот for - это "обёртка" в духе do { } while(0);, не генерирующая кода (при уровне оптимизации, отличающемся от полного отсутствия)
Зато можно писать break;
А, теперь понятно...
У меня почему-то вставляет цикл.
Причём объявление for(int s_e_i_r_I = 0; s_e_i_r_I == 0; s_e_i_r_I = 1) не прокатывает,
пишет "TimerB\TimerB.c|168|`for' loop initial declaration used outside C99 mode|"
Приходится объявление int s_e_i_r_I вытаскивать наружу.
Как бы эту гадость победить, давно хочу.
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)