一、状态机实现
下载了几个状态机的实现的代码,基本分下面几个逻辑:
- 直接逻辑判断,使用IF ELSE,或者 SWITCH。
- 使用查表法,写上状态机的各状态,对应条件下,ACTION,同时转移的下一个状态,而查表法,也可以分两种:
一是一个完整表,每次都遍历,直到找到对应的条项,然后进行切换。
二是使用二维数组,把上面的一维表转换一下,table[当前状态][能够接收的条件],这样查表会快点。
3.是使用模板递归的生成代码,生成的代码等同上面的(IF ELSE)判断,只不过不用自己写代码,避免错误。