C复杂声明练习

原创 2016年08月30日 20:28:24

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

如何理解c和c++的复杂类型声明

  • 2012年12月14日 09:52
  • 59KB
  • 下载

教你理解复杂的C声明.txt

  • 2009年12月09日 12:27
  • 10KB
  • 下载

转 如何理解c和c++ 的复杂类型声明

分类: C++2007-05-02 20:19 942人阅读 评论(1) 收藏 举报 曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗...

如何理解C和C++的复杂的声明

  • 2011年04月30日 20:13
  • 9KB
  • 下载

理解c和c++的复杂类型声明(int *(*a[5])(int, char*);)

曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。   我们将从每天都能碰到的...

教你理解复杂的C-C++声明

  • 2008年11月23日 19:07
  • 79KB
  • 下载

教你理解复杂的C-C++声明

  • 2009年10月26日 00:55
  • 37KB
  • 下载

教你理解复杂的C/C++声明

教你理解复杂的C/C++声明 关键字:C/C++,声明 作者:Vikram    更新:2005-08-21    浏览:9886 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C复杂声明练习
举报原因:
原因补充:

(最多只允许输入30个字)