怎么用c语言写状态机呀?请举例说明

Python013

怎么用c语言写状态机呀?请举例说明,第1张

c语言状态机之前:

1、确定一共有多少种状态,这里的状态有开和关,细分还有say thankyou 和警告

2、确定状态之间的迁移条件

如果按照四种状态:开、关、说谢谢、警告,那么这四种状态之前的迁移条件很明显了

分两个函数:

1、检查是否需要迁移状态;

2、迁移状态.

遍历各种状态检查是否有状态需要发生迁移.一般用一个switch将各种状态列出,然后在各种状态里面用if检查是否需要迁移状态,如果需要迁移,做好标记.

再次遍历各种状态,检查哪些状态做了标记,迁移到新状态,并做相应的操作,比如进入关的时候,做关门动作。

典型的状态机结构:

enum { state_A, state_B, state_C } state = state_A

while(1)

{

switch ( state )

{

case state_A:

if ( event_A )// 这里也可以用switch

{

action_1() // 在某状态下发生某事件执行某个动作,并转入下个状态

state = state_B

}

else if ( event_B )

{

}

else

{

}

break

case state_B:

... ...

}

}

问题要求:将C语言的注释转换为c++的注释方式

常见的C语言注释问题,由此可见C语言的注释比较复杂,情况也比较多,如果按照以下的情况一种一种的去处理的话逻辑太过混乱,无法真正的整理清楚,所以需要转换思路。

将复杂的控制逻辑分解成有限个稳定状态,在每个状态上进处理,这就是有限状态机。

有限状态机是闭环系统,可以有限的状态,处理无穷的事务。