1.
(*(void (*)())0)();
解读:
void (*)()是一个函数指针类型,外面加括号是强制类型转换的意思,该代码可以将0当做是一个函数的地址,0原本是int类型的,被void (*)()强制转换为函数指针类型,*(void (*)())0是解引用,相当于取到了这个函数,然后再调用。
2.
void (*signal(int, void(*)(int)))(int);
解读:
(1)signal是一个函数声明
(2)siganl 函数的第一个参数的类型是int
signal函数的第二个参数的类型是函数指针:void(*)(int)
这个函数指针指向的函数参数是int类型,返回类型是void
(3)signal函数的返回类型也是一个函数指针:void(*)(int)
这个函数指针指向的函数参数是int类型,返回类型是void