Использовал case X ... Z: https://s26.postimg.org/o78wqrs8p/2017-09-24_12-41-54.png
Переписал на case X : case Y: case Z: https://s26.postimg.org/t76cypxvd/2017-09-24_12-49-08.png
Отчего все так плохо? Я думал что он тупо при компиляции виртуально раскроет X ... Z в case X: case Y: case Z, а он просто судя по всему там вместо switch/case if'ы мутит.
Еще конструкция:
case C_MOVE_LT : command_move(ant, command); break;
case C_MOVE_T : command_move(ant, command); break;
case C_MOVE_RT : command_move(ant, command); break;
case C_MOVE_L : command_move(ant, command); break;
case C_MOVE_R : command_move(ant, command); break;
case C_MOVE_LB : command_move(ant, command); break;
case C_MOVE_B : command_move(ant, command); break;
case C_MOVE_RB : command_move(ant, command); break;
case C_PICK_LT : command_pick(ant, command); break;
case C_PICK_T : command_pick(ant, command); break;
case C_PICK_RT : command_pick(ant, command); break;
case C_PICK_L : command_pick(ant, command); break;
case C_PICK_R : command_pick(ant, command); break;
case C_PICK_LB : command_pick(ant, command); break;
case C_PICK_B : command_pick(ant, command); break;
case C_PICK_RB : command_pick(ant, command); break;
Выполняется в два раза быстрее чем
case C_MOVE_LT :
case C_MOVE_T :
case C_MOVE_RT :
case C_MOVE_L :
case C_MOVE_R :
case C_MOVE_LB :
case C_MOVE_B :
case C_MOVE_RB : command_move(ant, command); break;
case C_PICK_LT :
case C_PICK_T :
case C_PICK_RT :
case C_PICK_L :
case C_PICK_R :
case C_PICK_LB :
case C_PICK_B :
case C_PICK_RB : command_pick(ant, command); break;