typedef + 奇特的声明
来源:互联网 发布:亚当斯密 凯恩斯 知乎 编辑:程序博客网 时间:2024/04/20 11:46
简介:C语言中typedef应用非常广泛,其中应用到类型声明非常有趣,现在让我们好好看看
正文:
一、typedef:
a、与#define的区别
1、与#define,不同,typedef给出的符号名称仅限于类型;
2、它的解释由编译器,而不是预处理器执行;
3、typedef范围有限,但是在范围内,比#define更灵活;
b、涵义:
1、有助于说明自己的意图。EG:typedef unsigned char buye;说明此类型的变量表示数值而非字符编码;
2、增加可移植性;
二、声明:
a、 int b[][] //int 数组的数组
int **ptr //指向int的指针的指针
int * re[3]//具有3个元素的数组,每个元素都是一个整型指针
int ( * re) [3]//一个指向具有3个元素的整型数组的指针;
int * re[3][4]//一个3*4的数组,每个元素都是一个指向整型的指针
int (* re)[3][4]//一个指针,指向3*4的整型数组
int (* re[3])[4]//一个具有三个元素的数组,每个元素都是一个指向具有4个元素的int 数组的指针
b、诀窍:
[] ()具有相同的优先级
[]()都是从左到右进行结合
三扩展
1、 typedef int(*timer_callback_fn_t)(void *pData);
int (*timer_callback_fn_t) (void *pData);是一个函数指针,所指向的函数有一个参数,参数类型为void *
返回类型为int型。
用个typedef,当你想定义上面那个函数指针变量时,就可以,这样定义
timer_callback_fn_t pMytimer_fn;去定义一个名为pMytimer_fn的函数指针变量,而不用写成
int (*timer_callback_fn_t) (void *pData) pMytimer;
这么一长串。
指针,你总知道吧,指向字符的指针char *,你也应该知道吧,指向整型的指针,int *,你也应该知道吧,那指向函数的指针呢,这里就是了。
只不过说明一个函数,还要说明这个函数,有无参数,参数什么类型,有几个,有无返回值,返回什么,这么一搞起来,使得函数指针的定义显得非常的罗嗦。
可以用p代替,只是个名字而已,写得长点只是给你一看就知道大概是干嘛用的。
typedef int (*abc) (void *efg);
abc p;
名字是随便取的。
- typedef + 奇特的声明
- 指向函数的指针、typedef、奇特的声明
- C语言奇特的声明
- c primer plus 14.13 奇特的声明
- C/C++ 中奇特的声明
- 有关指针的一些奇特声明
- typedef 的前置声明
- IOS:Objective-C中奇特的方法声明语法理解
- IOS:Objective-C中奇特的方法声明语法理解
- typedef 的复杂声明用法
- typedef 复杂的变量声明
- C语言中的奇特声明
- 灵活而奇特的C++语言特性——typedef & aliases
- 读书笔记--typedef的有关指针声明
- 使用typedef简化函数指针的声明
- 使用typedef简化声明的实例分析
- typedef:C 中复杂的函数声明
- typedef C 中复杂的函数声明
- 《大师们是如何工作的》
- 六类食物让你吃出美丽肌肤
- vs2013+cocos2d-x-2.2.3配置
- 第十三周自由练习项目——体积
- 《统计学习方法》学习笔记五
- typedef + 奇特的声明
- 英语月总结
- 图像视频编码和FFmpeg(6)-----用FFmpeg编码和解码的例子
- LoadRunner-Vuser之参数化、关联、事务、检查点、集合点的使用
- cocos2d 3.0 box2d 解决移动相机镜头(滚屏)问题的方法
- cocoa的NSNotification通知
- 图像处理之灰度化
- 项目开发经验浅谈
- C++中四种类型转换方式