Existe um padrão típico de implementação de máquina de estado?

Precisamos implementar uma máquina de estado simples em C . Uma declaração de switch padrão é a melhor maneira de fazer isso? Temos um estado atual (estado) e um gatilho para a transição. switch(state) { case STATE_1: state = DoState1(transition); break; case STATE_2: state =...