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:... ...} }
微信扫码关注公众号
获取更多考试热门资料