解释C语言中signal函数声明

signal函数被声明在<signal.h>中:

void(*signal(int sig, void(*func)(int)))(int);

采用折返法分析其声明:

  1. 找到最具体的声明符:"signal";

  2. 声明符右边"()"优先级大于"*"所以signal是函数并且返回值是指针类型;

  3. 由上一步,声明被简化成:void(*)(int);表明signal返回值是一个指向函数的指针,并且这个函数参数是int类型且没有返回值;

  4. 查看signal的参数,第一个是int类型,第二个是和signal返回值一样的函数指针:参数是int,没有返回值;

Tags: c语言 函数声明 折返法
Time: 1381849902135