假设我正在尝试实现一个“菜单”,要求用户输入命令,然后调用执行该命令的函数。我决定声明一个包含每个命令名称的字符串数组,然后将用户的输入与该数组中的字符串进行比较,以查看下一步该做什么,而不是为每个命令设置一个条件块。
就像是:
char* commands[] = {"cmd", "cmd1", "cmd2"};
然后:
while(strcmp(cmd, "end") != MATCH) {
printf("?:");
scanf("%s", cmd);
for(i = 0; i < CMD_NUMBER; i++) {
if(strcmp(cmd, commands[i]) == MATCH) {
/*do something */
}
}
}
有没有办法在没有任何条件或 switch 语句的情况下调用函数?我正在考虑实现一个函数指针结构,每个命令都有一个成员,然后使用它,但我不确定如何或是否可能。