概述
之前写过一篇状态机的实用文章,很多朋友说有几个地方有点难度不易理解,今天给大家换种简单写法,使用函数指针的方法实现状态机。
状态机简介
有限状态机FSM是有限个状态及在这些状态之间的转移和动作等行为的数学模型,是一种逻辑单元内部的高效编程方法,可以根据不同状态或者消息类型进行相应的处理逻辑,使得程序逻辑清晰易懂。
函数指针实现FSM
使用函数指针实现FSM可以分为3个步骤
-
建立相应的状态表和动作查询表
-
根据状态表、事件、动作表定位相应的动作处理函数
-
执行完成后再进行状态的切换
代码实现步骤
-
定义状态数据的枚举类型
typedef enum {
state_1=1,
state_2,
state_3,
state_4
}State;
-
定义事件的枚举类型
typedef enum{
event_1=1,
event_2,
event_3,
event_4,
event_5
}EventID;
-
定义状态表的数据类型
typedef struct
{
int event; //事件
int CurState; //当前状态
void (*eventActFun)(); //函数指针
int NextState; //下一个状
最后
以上就是英勇小土豆为你收集整理的【编程之美】函数指针方法实现简单状态机(附代码)的全部内容,希望文章能够帮你解决【编程之美】函数指针方法实现简单状态机(附代码)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复