你这个问题还是很好的,是一个标准的函数指针的运用。
在main 函数中希望选择使用的函数,例如max,然后将其作为参数传入process,即第三个参数。
那么对于process ,第三个参数就是形参,并不知道main 中传入的是什么函数,直接使用即可。。。。。。
下面给你提供简单修改后的代码,应该很好理解~~~~
```c
int process(int a, int b, int(*fun)(int, int))
{
return fun(a, b);
}
int main()
{
int a, b;
printf("input a,b:\n");
scanf("%d %d", &a, &b);
printf("max = %d\n", process(a, b, max));
return 0;
}
```
你的fun后边怎么还带a,b两个参数,这样就像是个函数,如何是函数你不能单独用fun判断需要加上你上边那2和参数
int( * fun)(int a,int b)
这样写,个人推测这样写是把fun当成指针函数了,但是你这样写是不对的,因为你并没有声明这个函数
还有就是,你既然把它当做指针函数,那么怎么直接fun==max呢?
如有帮助,还请帮忙点下采纳!感谢!