一个函数名可以直接做为另一个函数的参数吗?解决思路

一个函数名可以直接做为另一个函数的参数吗?
有这个一句代码EXIT(processEvents);
其中EXIT是宏定义的一个函数,定义如下
#   define   EXIT(fcn)             traceExit   (__FILE__,   __LINE__,   #fcn)

参数processEvents也是一个函数
static   void   processEvents(AflcHandlerTestRingContext   *context_p)
{
    /*Stop   this   test   by   unloading   self*/
    afshUnloadHandler   (   context_p-> myHandlerId   );
}
请问,这里EXIT(processEvents);是一种什么调用方法呢
函数名能直接作为另一个函数的参数吗
谢谢大家了

------解决方案--------------------
函数名能直接作为另一个函数的参数吗
===================================
能.

比如:
typedef double (*Func)(double); //函数指针: 返回double, 参数类型为double

void CallFunction(double x, Func f) //这个函数要求提供一个函数指针参数f
{
double result = 0;
result = f(x); //调用函数f
}

double f1(double x)
{
return x;
}

double f2(double x)
{
return x*x;
}

//使用函数指针
void UseFunction()
{
double x = 1;
CallFunction(x, f1); //传f1给CallFunction

CallFunction(x, f2); //传f2给CallFunction
}

这里函数名代表的是函数指针(地址).


------解决方案--------------------
函数名代表函数的地址
如果另外一个函数的参数是一个指向函数的指针,那就需要一个函数来作参数
比如:
int fun1(int (*p)(int b),int a){};
int fun2(int c){};
那么:
可以这样用fun1(fun2,3);
------解决方案--------------------
请问,这里EXIT(processEvents);是一种什么调用方法呢
字符串而已。
函数名能直接作为另一个函数的参数吗
可以,地址调用。
------解决方案--------------------
可以函数指针
------解决方案--------------------
当然可以,函数名就是一个字符串,也代表了函数的地址
------解决方案--------------------
呵呵 显然可以, 回调函数都是这么用的