遇到一超恐怖的声明,看大家能不能读懂
今早起来看书,遇到一个超超级吓人的声明,如下:void (*signal(int sig,void(*func)(int)))(int);
吓我一跳啊,当然书上就有答案,看看兄弟们谁能看懂这个声明,当然几位大牛就算了,肯定是小意思的
程序代码:
我只能分析到这里了,继续关注
//void (*signal(int sig,void(*func)(int)))(int);
typedef void (*PFUN1)(int);
typedef void (*PFUN2)(int sig, void(*func)(int));
void Test1(int n)
{
printf("Test1 n = %d\r\n", n);
}
void Test2(int n, void Test1(int n))
{
printf("Test2 n = %d\r\n", n);
}
int main(int argc, char* argv[])
{
PFUN1 pFun1 = Test1;
PFUN1(1);
PFUN2 pFun2 = Test2;
pFun2(2, pFun1);
return 0;
}
