c语言中复杂声明的解析
来源:互联网 发布:mac变色龙引导 编辑:程序博客网 时间:2024/05/16 00:29
在c语言中声明可以任意复杂,这就导致我们在阅读某些较为复杂的声明时出现问题
解读复杂c声明的一种方法是遵循“声明模仿使用”的阅读方法:
例如:char *(*pfunc)();
*(*pfunc)()是一个char
(*pfunc)() 是一个 指向char的指针
(*pfunc) 是一个 返回char型指针的函数
pfunc 是一个 指向返回char型指针的函数的指针
另外是一种“从内而外”的解读方法
我们一般采用“左右规则”
即:先找到标识符,然后看其右边,“[]”为数组,“()”为函数,接着看左边,有“*”即为指针;如此右左,循环往复。
值得注意的是:[]和()的结合度比*更紧。(就注意下优先级)
例子:char * ( * (a [n] ) () ) () ;
先可以找到标识符a,转向其右边,为数组;
然后其左边,是一个*号,说明是指针数组;
新的一轮循环,右边是(),说明是函数。
那么函数的返回是什么呢,看左边*,是指针;
那么指针指向的是什么呢,看右边,是一(),是函数;
那么函数的返回值呢,指向左侧的char*,即:指向字符指针的函数
综上所述,例子定义的是:
一个包含n个指向返回指向字符指针的函数指针数组。
一般我们会用typedef逐步完成声明
比如上例的形式如下:
typedef char *pc;
typedef pc fpc();
typedef fpc *pfpc;
typedef pfpc fpfpc();
typedef fpfpc *pfpfpc;
pfpfpc a[N];
- c语言中复杂声明的解析
- C语言中复杂的变量声明的解析
- C语言复杂声明的解析
- 解析c语言的复杂声明
- 解析c语言的复杂声明实践
- C语言复杂声明的解析
- c语言复杂声明的解析
- C语言复杂声明解析
- c语言 复杂声明 解析
- C语言复杂声明解析
- 解析C语言复杂声明
- 帮你解析复杂的C语言声明
- C语言的复杂声明
- 复杂的C 语言声明
- C语言的复杂声明
- C语言中的复杂声明解析
- C语言指针复杂声明解析
- 正确解析C语言中的复杂声明
- Ubuntu 中软件的安装、卸载以及查看的方法总结
- 线程同步技术(二)
- 跳台阶问题
- 分享最近做运动目标跟踪的经历
- Python文件夹与文件的操作
- c语言中复杂声明的解析
- Android 手机震动功能实现
- 容器的定义和使用 构造方法 普通方法的调用 查看API及类的继承与子类
- Java读取xml文件方法
- 显式加载DLL并使用 DLL 中的类
- asp.net 实现进度条 用来显示加载进度或程序处理进度
- Diary in 20121109
- 读取 Excel 数据并保存到服务器数据库
- 浅析目前的视频会议系统主要使用领域