其实这是函数指针问题,下面是一个示例,已调通,方便大家学习。
//具体细节参看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;
}
本文通过一个具体的示例详细解析了函数指针的概念及其使用方法。示例中定义了一个名为mySignal的函数,该函数返回一个函数指针,并接受一个字符信号和一个函数指针作为参数。此外,还提供了一个展示信号的辅助函数showSignal。通过这种方式,读者可以更好地理解如何在C++中使用函数指针。

3923

被折叠的 条评论
为什么被折叠?



