请举一个C语言有限状态机的例子
时间: 2023-06-24 20:07:47 浏览: 54
一个简单的C语言有限状态机的例子是一个交通信号灯系统。它有三个状态:红灯、黄灯和绿灯。在红灯状态下,所有车辆必须停下;在黄灯状态下,车辆应减速并注意到交通信号的变化;在绿灯状态下,车辆可以通过交叉口。
以下是一个简单的C语言有限状态机实现:
```
enum State {RED, YELLOW, GREEN};
enum State current_state = RED;
void traffic_light(State state) {
switch(state) {
case RED:
// stop all vehicles
// set current_state to YELLOW
break;
case YELLOW:
// slow down, prepare to stop
// set current_state to GREEN
break;
case GREEN:
// proceed through intersection
// set current_state to RED
break;
}
}
int main() {
while(true) {
traffic_light(current_state);
// wait for some time
// update current_state
}
return 0;
}
```
在主函数中,状态机将一直循环并调用 `traffic_light` 函数,该函数将根据当前状态来执行相应的操作,并根据外部条件更新状态。这个简单的例子展示了如何使用C语言实现一个有限状态机。