我正在用混合C和C++制作一个小项目.我正在我的一个工作线程的核心构建一个小型状态机.
我想知道你是否会在SO上分享你的状态机设计技巧.
注意:我主要是经过久经考验的实施技术.
更新:基于SO上收集的所有重要输入,我已经确定了这个架构:
我们需要在C中实现一个简单的状态机.
标准的switch语句是最好的方法吗?
我们有一个当前状态(状态)和转换触发器.
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;
}
Run Code Online (Sandbox Code Playgroud)
对于简单的状态机是否有更好的方法
编辑:对于C++,我认为Boost Statechart库可能是要走的路.但是,它对C 没有帮助.让我们专注于C用例.
我只是想知道是否有人知道在互联网上开发状态机的一些很好的教程.还是电子书?
我开始在状态机上工作,只需要一些通用的东西让我开始.