C复杂声明练习

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的函数的指针”的函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值