关闭

C复杂声明练习

标签: c语言指针
149人阅读 评论(0) 收藏 举报
分类:

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:306960次
    • 积分:7058
    • 等级:
    • 排名:第3379名
    • 原创:397篇
    • 转载:1篇
    • 译文:1篇
    • 评论:111条
    最新评论