#include <stdio.h>
// 定义状态枚举类型
typedef enum {
STATUS_A,
STATUS_B,
STATUS_C,
STATUS_D
} State;
// 状态机函数
void stateMachine(State currentState) {
switch (currentState) {
case STATUS_A:
// 在状态A中的操作
printf("在状态 A\n");
// 决定下一个状态
currentState = STATUS_B; // 转移到状态B
break;
case STATUS_B:
// 在状态B中的操作
printf("在状态 B\n");
// 决定下一个状态
currentState = STATUS_C; // 转移到状态C
break;
case STATUS_C:
// 在状态C中的操作
printf("在状态 C\n");
// 这里可以决定是停留在状态C还是转移到其他状态
currentState = STATUS_D; // 转移到状态D
break;
case STATUS_D:
// 在状态D中的操作
printf("在状态 D\n");
// 状态D可能是一个结束状态,或者可以转移到其他状态
break;
default:
// 处理未知状态
printf("未知状态\n");
break;
}
// 可以在这里继续状态机的逻辑,例如递归调用或循环
}
int main() {
State currentState = STATUS_A; // 初始状态为STATUS_A
// 运行状态机
stateMachine(currentState);
return 0;
}
机器人和通信协议解析常用的状态机写法
最新推荐文章于 2024-08-14 10:16:32 发布