Nous devons implémenter une machine à états simple dans C .
Une déclaration d'interrupteur standard est-elle la meilleure solution ?
Nous avons une situation actuelle (état) et un déclencheur pour la transition.
switch(state)
{
case STATE_1:
state = DoState1(transition);
break;
case STATE_2:
state = DoState2(transition);
break;
}
...
DoState2(int transition)
{
// Do State Work
...
if(transition == FROM_STATE_2) {
// New state when doing STATE 2 -> STATE 2
}
if(transition == FROM_STATE_1) {
// New State when moving STATE 1 -> STATE 2
}
return new_state;
}
Y a-t-il un meilleur moyen pour les machines à états simples
EDIT : Pour le C++, je pense que le Boost Carte d'état la bibliothèque pourrait être la solution. Cependant, elle ne pas aide avec le C. Concentrons-nous sur le cas d'utilisation du C.
2 votes
Voir aussi stackoverflow.com/questions/1647631/c-state-machine-design