参考《Linux c 编程一站式学习》
void (*signal(int signum, void (*handler)(int)))(int);
1. signal 首先是一个函数类型
typedef void (*T1) (int);
T1 signal(ins signum, T1 handler);
typedef void(*T1)(int);声明了一个函数指针类型,指向的函数的返回值是void,函数的参数是int类型
handler是指针类型,并且是指向函数的指针,指向的函数的返回值是void类型,函数的参数是int类型的
signal是函数类型,函数的一个参数是int类型,另一个参数是T1类型,函数的返回值是T1类型
int (*(*fp)(void *))[10];
1. fp是一个指针
typedef int (*T1 (void *))[10];
T1 *fp;
2. T1函数类型, 函数参数是void*类型,返回值是T2类型
typedef int (*T2)[10];
typedef T2 T1(void *);
T1 *fp;
3. T2是指针类型,指向数组
总结:
fp是函数指针,指向的函数的参数是void *类型,函数的返回值是指向数组的指针