其实这是函数指针问题,下面是一个示例,已调通,方便大家学习。
//具体细节参看C++ premier 4版,238页讲解
#include <stdio.h>
enum { ABORT=0, FORK };
void showSignal(char sig)
{
printf("The signal is: ");
switch(sig)
{
case 0:
puts("Abort!");
break;
case 1:
puts("Fork!");
break;
}
}
void (*mySignal( char sig, void (*func)(char) ))(char)
//此函数类似void (*mySignal( char sig, void (*func)(char) ))(char)
//mySignal是一个指向以sig,func为参数的函数指针,而func有是一个指向以char类型为参数的指针,
//函数最后返回一个void *(char)的函数指针.
{
puts("Signal:");
func(sig);
return func;
}
int main(void)
{
void (*my)(char);
my=mysignal(1,OutputSignal);
my(0);
return 0;
}