可以
例如调用比较两数大小的函数int max(int a,int b){},
调用时就可以写出int d=max(c,max(a,b));但前提是调用的函数有返回值。
max(1, sub(2)) 你这种方式,sub(2)是个数,并不是函数。C的函数参数里面不可以有函数,只能有函数指针。
把函数名作为参数就是函数的地址了.
如下面的例子
#include
typedef int (*PFUN)(int a, int b);//函数指针
int add(int a, int b)
{
return (a+b);
}
void fun(int a, int b, PFUN pfun) //函数指针作为函数的参数
{
printf(“%d\n", pfun(a,b));
}
int main()
{
int a=5;
int b=6;
PFUN pfun=add; //将函数指针指向add
fun(a, b, pfun);
return 0;
}