Czy istnieje typowy wzorzec implementacji maszyny stanów?

Musimy wdrożyć prostą maszynę stanów w C . Czy standardowe oświadczenie dotyczące przełącznika jest najlepszym rozwiązaniem? Mamy aktualny stan (stan) i wyzwalacz przejścia. switch(state) { case STATE_1: state = DoState1(transition); break; case STATE_2: state = DoState2(transition);...