上一节我们通过了转移表来优化计算机。这一次我们来使用函数指针最主要的用处,用回调函数来二次优化我们的计算器代码。
首先我们还是通过代码去了解什么是回调i函数,回调函数的运行是什么样的

其实回调函数就是把函数Add的地址通过main函数传给函数test,函数test将这个地址命名为形参pf,再通过pf调用Add函数。文字表达的很绕就像它的名字一样“回调函数”,但跟着图片箭头多捋几次其实也不难。
那现在我们就用回调函数来优化一下我们的整段代码把
//打印菜单函数
void meun()
{
printf("**************\n");
printf("**** 1.加 ****\n");
printf("**** 2.减 ****\n");
printf("**** 3.乘 ****\n");
printf("**** 4.除 ****\n");
printf("****0.退出****\n");
printf("**************\n");
}
//加法函数
int Add(int x, int y)
{
return x + y;
}
//减法函数
int Sub(int x, int y)
{
return x - y;
}
//乘法函数
int Mul(int x, int y)
{
return x * y;
}
//除法函数
int Div(int x, int y)
{
return x / y;
}
//回调函数
void Calculate(int(*pf)(int, int))
{
int result = 0;
int x = 0;
int y = 0;
printf("请输入两个操作数:");
scanf("%d %d", &x, &y);
result = pf(x, y);
printf("%d\n"

最低0.47元/天 解锁文章
2852





