1 Star 0 Fork 0

罗婕/shiyan3_shiyan4

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
状态机.c 1.22 KB
一键复制 编辑 原始数据 按行查看 历史
罗婕 提交于 2024-11-11 13:05 . 提交实验3与实验4的代码及文件
#include <stdio.h>
// 定义状态枚举类型
typedef enum {
STATE_INIT,
STATE_RUNNING,
STATE_STOPPED
} State;
// 定义状态函数指针类型
typedef void (*StateFunction)(void);
// 状态函数
void stateInit(void);
void stateRunning(void);
void stateStopped(void);
int main(void) {
State state = STATE_INIT;
StateFunction stateFunction;
while (1) {
// 根据当前状态选择相应的状态函数
switch (state) {
case STATE_INIT:
stateFunction = stateInit;
break;
case STATE_RUNNING:
stateFunction = stateRunning;
break;
case STATE_STOPPED:
stateFunction = stateStopped;
break;
}
// 执行状态函数
stateFunction();
}
return 0;
}
void stateInit(void) {
printf("Initializing...\n");
// 设置下一个状态
state = STATE_RUNNING;
}
void stateRunning(void) {
printf("Running...\n");
// 设置下一个状态
state = STATE_STOPPED;
}
void stateStopped(void) {
printf("Stopped.\n");
// 设置下一个状态
state = STATE_INIT;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/Aurora_luo/shiyan3_shiyan4.git
[email protected]:Aurora_luo/shiyan3_shiyan4.git
Aurora_luo
shiyan3_shiyan4
shiyan3_shiyan4
master

搜索帮助