定义操作函数
static void cmd_capture (char *par) {
}
static void cmd_fill (char *par) {
}
static void cmd_type (char *par) {
}
static void cmd_rename (char *par) {
}
static void cmd_copy (char *par) {
}
static void cmd_delete (char *par) {
}
static void cmd_dir (char *par) {
}
static void cmd_format (char *par) {
}
static void cmd_help (char *par) {
}
类型定义
typedef struct scmd {
char val[8];
void (*func)(char *par);
} SCMD;
命令与功能匹配定义
static const SCMD cmd[] = {
"CAP", cmd_capture,
"TYPE", cmd_type,
"REN", cmd_rename,
"COPY", cmd_copy,
"DEL", cmd_delete,
"DIR", cmd_dir,
"FORMAT", cmd_format,
"HELP", cmd_help,
"FILL", cmd_fill,
"?", cmd_help };
#define CMD_COUNT (sizeof (cmd) / sizeof (cmd[0]))
for (i = 0; i < CMD_COUNT; i++) {
if (strcmp (sp, (const char *)&cmd[i].val)) {
continue;
}
cmd[i].func (next); /* execute command function */
break;
}
if (i == CMD_COUNT) {
printf ("\nCommand error\n");
}
如次 可实现字符串和相应函数功能匹配