atexit( )函数:程序正常结束时,回调一个函数
int atexit(void (*func) (void));
并非简单的从左往右读。
atexit is function(fund is pointer to function(void) returning void ) returning int;
即:atexit是一个返回int的函数(参数是:指向返回void没有参数的函数的指针)
再练习一个复杂的:
void (*signal(int sig, void(*func)(int)))(int);
1.看标识符
void (*signal(int sig, void(*func)(int)))(int);
signal is
2.()比*的优先顺序更高
void (*signal(int sig, void(*func)(int)))(int);
signal is function( ) returning
3.解释参数
void (*signal(int sig, void(*func)(int)))(int);
signal is function(sig is int, )returning
4.分析另一个参数
void (*signal(int sig, void(*func)(int)))(int);
signal is function(sig is int, fun is pointer to function(int) returning void ) returning
5.解释*
void (*signal(int sig, void(*func)(int)))(int);
signal is function(sig is int, func is pointer to function(int) returning void) returning pointer to
6.解释(int)
void (*signal(int sig, void(*func)(int)))(int);
signal is function(sig is int, func is pointer to function(int) returning void) returning pointer to function(int) returning void
翻译成中文:
signal是返回“指向返回为void参数为int的函数的指针”的函数,它接收两个参数,一个是int, 一个是“指向返回void参数是int的函数的指针”的函数。