1、定义函数名指针
typedef void (*VOID)(void);
(此处的VOID表示函数的指针名,也可以命名为其它的,如FUNC 、FUNP等等)
2、定义使用函数名指针的结构体
typedef struct
{
unsigned char Source;
VOID pEnter;
VOID pExit;
VOID pProcKey;
VOID pVideo;
}SOURCE_TYPE_PROC;
3、定义数组,数组成员类型为上述结构体
const SOURCE_TYPE_PROC procSourceTab[] =
{
/* state pEnter pExit pProcKey pVideo*/
SourceStb, EnterStb, ExitStb, NULL, SetVideoSystemStb,
SourceRadio, EnterRadio, ExitRadio, ProcRadioKey, SetVideoSystemRadio,
SourceDvd, EnterDvd, ExitDvd, ProcDvdKey, SetVideoSystemDvd,
};
4、调用
if(currentSource== procSourceTab[i].Source)
{
if(procSourceTab[i].pProcKey != NULL)
{
(procSourceTab[i].pProcKey)();
}
}