在C语言中,可以使用结构体(struct)来存储每条命令所涉及到的信息,包括函数名(作为字符串存储)和函数指针等。然后,可以使用一个数组来存储这些结构体实例。为了根据命令触发对应的函数,可以使用字符串比较来查找匹配的结构体,并调用其函数指针。
以下是一个示例代码,展示了如何实现这一点:
cpp
#include <stdio.h>
#include <string.h>
// 定义函数类型
typedef void (*FunctionPtr)();
// 定义结构体来存储函数信息
typedef struct {
char functionName[50];
FunctionPtr function;
} FunctionInfo;
// 示例函数
void functionA()
{
printf("Function A called\n");
}
void functionB()
{
printf("Function B called\n");
}
void functionC()
{
printf("Function C called\n");
}
int main()
{
// 定义函数信息数组
FunctionInfo functions[] = {
{"functionA", functionA},
{"functionB", functionB},
{"functionC", functionC}
};
int numFunctions = sizeof(functions) / sizeof(functions[0]);
// 输入命令
char command[50];
printf("Enter function name to call: ");
scanf("%s", command);
// 查找并调用对应的函数
int i = -1;
for (i = 0; i < numFunctions; i++) {
if (strcmp(functions[i].functionName, command) == 0) {
functions[i].function();
break;
}
}
// 如果没有找到匹配的函数
if (i == numFunctions) {
printf("Function not found\n");
}
return 0;
}
在这个例子中,我们有一个函数信息数组,其中包含了函数名和指向这些函数的指针。用户可以通过输入函数名来调用相应的函数。