一个简单的函数指针的使用,如下为demo代码:
#include<stdio.h>
#include<strings.h>
/* 定义简单的加减乘除函数 */
int add(int a, int b)
{
return a+b;
}
int sub(int a, int b)
{
return a-b;
}
int mul(int a, int b)
{
return a*b;
}
int div(int a, int b)
{
return a/b;
}
/* 测试函数 */
int look_func(char *func_name)
{
if(strcasecmp(func_name, "add") == 0)
{
return 0;
}
else if(strcasecmp(func_name, "sub") == 0)
{
return 1;
}
else if(strcasecmp(func_name, "mul") == 0)
{
return 2;
}
else if(strcasecmp(func_name, "div") == 0)
{
return 3;
}
else
{
return -1;
}
}
int main(int argc, char *argv[])
{
int index = -1;
char func_name[128] = {0};
int (*funcitons[4])(int, int) = {NULL, NULL, NULL, NULL};
int ina = 0, inb = 0;
int result = -1;
funcitons[0] = add;
funcitons[1] = sub;
funcitons[2] = mul;
funcitons[3] = div;
printf("请输入函数名:");
scanf("%s", func_name);
index = look_func(func_name);
if(index >= 0)
{
printf("\n");
printf("输入一个数字: ");
scanf("%d", &ina);
printf("输入另一个数字: ");
scanf("%d", &inb);
result = funcitons[index](ina, inb); //调用相应函数指针进行运算
printf("\n函数的执行结果为:%d\n", result);
}
else
{
printf("输入函数名有误!!!\n");
return -1;
}
return 0;
}