дизассемблерный листинг оптимизированного варианта оператора switch
Создавать таблицы переходов умеют все три рассматриваемых компилятора, даже если элементы прогрессии некоторым образом перемешаны:
switch (a)
{
case
11 : /* код обработчика */ break;
case
2 : /* код обработчика */ break;
case
13 : /* код обработчика */ break;
case
4 : /* код обработчика */ break;
case
15 : /* код обработчика */ break;
case
6 : /* код обработчика */ break;
case
17 : /* код обработчика */ break;
case
8 : /* код обработчика */ break;
case
19 : /* код обработчика */ break;
case
10 : /* код обработчика */ break;
case
21 : /* код обработчика */ break;
}