C语言声明的优先级规则
来源:互联网 发布:分水岭算法示意图 编辑:程序博客网 时间:2024/05/20 05:31
图为《C专家编程》的第三章,写的很好,有了这个规则再也不用担心指向常量的指针、常指针、指向常量的常指针傻傻分不清楚了
实例二:
void (*signal (int sig, void(* func) (int))) (int);首先剥离参数,变为:
void (*signal ( )) (int)
根据上面规则,从signal开始读,
然后是B.2,signal后面有(), 可知signal是一个函数,剥离函数signal()后可知它的返回值是一个函数指针void (* )(int ) ,该函数指针的返回值为void,参数为int。
而(int sig, void(* func) (int)部分为signal函数的参数。确实有点复杂
如果还是不理解,可以参考函数指针和函数声明:
函数指针声明:void (*pfun) (int);
函数生命 void fun(); 返回值为void,若想返回函数指针,则用fun()替换pfun---> void (* fun()) (int);这样是不是好理解一些。
若使用typedef定义一下: typedef void (*pfun)(int)
那么复杂的void (*signal (int sig, void(* func) (int))) (int);就变为了pfun signal(int pfun);既好理解有方便书写
嗯,以后写函数指针的时候可以考虑使用typedef
0 0
- 理解C语言声明的优先级规则
- 理解C语言声明的优先级规则
- C语言声明的优先级规则《转》
- C语言声明的优先级规则
- C语言中声明的优先级规则
- C语言声明的优先级规则
- 理解C语言声明的优先级规则
- C语言声明的优先级规则
- 理解C语言声明的优先级规则
- 理解c语言声明的优先级规则
- C语言声明优先级规则
- C语言声明优先级规则
- C声明的优先级规则
- c语言声明的优先级规则&//c语言声明的解码环[摘自c专家编程]
- C语言中的声明优先级规则
- [c/c++]分析c语言声明优先级规则
- 声明的优先级规则
- 截取《C专家编程》中的语言声明优先级规则
- hdu 1878 欧拉回路
- 08-03 网络通信(UDP) URL XML解析器 JSON、DOM、SAX 枚举
- 9种排序算法总结
- Java学习--(五)Buliding a Java Program(使用eclipse)
- 鸟哥的私房菜学习笔记十三 关于正则表达式
- C语言声明的优先级规则
- 暑假集训第四周 DP C - Proud Merchants
- HD2041 超级楼梯【斐波那契数列】
- 机器人的运动范围
- js 重载问题
- new Handler().postDelayed() 延迟intent跳转
- 关于Android下,XML文件的生成和解析方式
- python菜鸟日记3
- __attribute__((constructor))