回调函数的定义:通过函数指针调用的函数。把函数的指针(地址)作为参数传递给另一个函数时,被调用的函数即为回调函数。
回调函数不是由该函数的实现方直接调用,而是在特定的 事件或条件时由另一方调用的
example:
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;
}
int calc(int (*pf)(int , int))
{int x, y;scanf("%d%d", &x, &y);int ret = pf( x, y);printf("%d\n", ret);
}
void menu()
{printf("*****************************\n");printf("*****1.add 2.sub *********\n");printf("*****3.mul 4.div *********\n");printf("********0.exit **************\n");
}
int main()
{int input = 0;do{menu();printf("请输入一个数字:");scanf("%d", &input);switch (input){case 1:calc(add);break;case 2:calc(sub);break;case 3:calc(mul);break;case 4:calc(div);break;case 0:printf("退出");break;default:printf("输入错误,请重新输入");}} while (input);return 0;
}
calc函数,通过函数指针pf调用对应的函数,此即为调用函数。