第八章 8.7
有限状态机,这个东西很有用,我准备编写的电控程序就要这么干,用if和switch太不给力了 哈哈
finite state machine
基于函数指针数组
声明:
void (*state[MAX_STATES]) ()
初始化:
extern int a(),b(),c(),d();
int (*state[])()={a,b,c,d};
通过数字中的指针来调用:
(*state[i]) ();
书上说也可以这样 state[i]();
一个简单程序
#include <stdio.h>
#include <stdlib.h>
void (*FredgeNewMode[5])();
void Initial_Check(void);
void Normal(void);
void Test(void);
void Forced_Defrost(void);
void Display(void);
void (*FredgeNewMode[])()={Initial_Check,Normal,Test,Forced_Defrost,Display};
enum
{
INITIAL_CHECK,
NORMAL,
TEST,
FORCED_DEFROST,
DISPLAY,
}Fridge_Mode;
void Initial_Check()
{
printf("Initial_Check\n");
}
void Normal(void)
{
printf("Normal\n");
}
void Test(