简单测试代码如下:
#include <stdio.h>
int(*fun2)(int, int) = NULL; //用于存储以参数形式传入的函数指针地址
int fun1(int a, int b) //原处理函数
{
printf("a+b=%d\n", a + b); //打印参数相加的值
return 0;
}
void temp(int (*fun)(int,int)) //用于存储传入的处理函数地址
{
fun2 = fun;
printf("fun=[%p]\nfun2=[%p]\n",fun,fun2); //打印地址查看是否相同
}
void fun3(void) //测试
{
fun2(3, 5);
}
int main(void)
{
temp(fun1);
fun3();
system("pause");
}
执行结果: