如下:
void (CmdCls:: *CmdProcessTab[CMD_TOTAL_NUM])(uchar *p)= { // 函数表 ...... };
void Function(void) { void (DownloadCmdCls::*pExecuteCmd)(uchar *p); // 定义函数指针
...... pExecuteCmd = CmdProcessTab[CmdIndex]; (DCMD.*pExecuteCmd)(PSC); ...... }
/////////////////////// 现在的问题: CmdIndex是双字节命令字,即0x0000~0xffff 但实际应用中不可能有65535个命令,中间很多空的,且不规则的。 有何好的办法 ??谢谢! |