c语言状态机编程例子
时间: 2023-12-12 19:31:15 浏览: 31
好的,下面是一个简单的 C 语言状态机编程例子:
```c
#include <stdio.h>
typedef enum {
STATE_IDLE,
STATE_RUNNING,
STATE_STOPPED
} State;
int main() {
State state = STATE_IDLE;
int input;
while (1) {
switch (state) {
case STATE_IDLE:
printf("Enter 1 to start, 0 to exit: ");
scanf("%d", &input);
if (input == 1) {
state = STATE_RUNNING;
printf("Starting...\n");
} else {
state = STATE_STOPPED;
printf("Exiting...\n"); }
break;
case STATE_RUNNING:
printf("Enter 0 to stop: ");
scanf("%d", &input);
if (input == 0) {
state = STATE_IDLE;
printf("Stopping...\n");
}
break;
case STATE_STOPPED:
return 0;
}
}
return 0;
}
```
这个例子实现了一个简单的状态机,有三个状态:空闲、运行和停止。在空闲状态下,程序会等待用户输入 1 来启动状态机,或者输入 0 来退出程序。在运行状态下,程序会等待用户输入 0 来停止状态机。在停止状态下,程序会直接退出。