typedef的使用
来源:互联网 发布:淘宝介入需要什么证据 编辑:程序博客网 时间:2024/06/14 06:43
一般书籍上关于type得分的描述,都不怎么全面,仅知道typedef是为变量命名别名。于是,下面的一些命名也是便于理解的。
typedef int my_int;my_int iint;//定义一个int型变量typedef char* c_point;c_point my_point;//定义一个char*指针
但是遇到类似于
typedef char *p 貌似有点不太好理解。按为一个已知类型命名别名那么
typedef myint int;typedef int myint;
貌似也没什么区别,真的没有嘛?
以个人理解阅读typedef定义的类型时将typedef去掉,即为定义一般变量,即可看出未知变量的类型。以下为typedef为不同类型变量命名别名。
typedef char *mychar_point ;//去掉typedef即为char *mychar_point ,故可看出为char *定义了一个新的别名,mychar_point mychar_point p; //于是p为一个指针,指向一个char型的数据定义数组
typedef int myarray[5];//同上,去掉typedef可看出重命名了一个int型数组,数组中有5个元素。 myarrayiarry; // 有了上面的重命名,以后就可以这样方便的定义int[5]的数组了
定义数组指针
typedef int (*myarray_point)[5];myarray_pointiarry_point;定义指针数组
typedef int *myarray_point[5];myarray_pointiarry_point;
定义函数指针
typdedef (*pointer)(paramer list);pointer my_pointer;
typdedef pointer(paramer list);pointer *my_pointer;//定义pointer my_pointer;没什么意义
最后看一个复杂的
void (*signal(int signum,void(*handler)(int)))(int)该函数可理解为
typedef void (*seg)(int);seg signel(int signum,seg handler);
如果直接看按照右左法则的读法,很容易可以看出handler是一个函数指针,指向一个无返回值,带一个参数int的函数,signal是一个函数,函数有两个参数一个是int,另一个是函数指针,该函数返回值为函数指针,指向void型参数为int的函数。
另一种理解方法:
void(*p)(int)很好理解p是一个函数指针指向一个无返回值,带一个参数int的函数,
void(*fun())(int)fun()是一个函数,返回值为一个函数指针
- typedef的使用
- Typedef 的使用
- typedef 的使用
- typedef的使用
- typedef的使用
- typedef的使用总结
- typedef的使用小结
- 关于typedef的使用
- typedef的使用
- typedef的使用
- [Haxe] typedef 的使用
- typedef的使用
- 几个typedef的使用
- typedef的使用
- 使用typedef的误区
- typedef的使用
- typedef 的使用
- typedef的使用
- 第七周任务-模板类
- 学习《简明Python教程》应该注意的地方
- 友元函数运算+ - * /
- MQTT推送资料大全
- 项目1
- typedef的使用
- free
- ORA-12514 监听程序当前无法识别连接描述符中的服务处理方法
- 处理虚数类 运算符的重载 友元函数
- android下有哪些不错的开源项目
- 请教怎么实现MFC Dlg界面多语言界面,急等
- canvas 绘制图形1
- Java 协变性 逆变性 学习笔记
- jstl -- c标签库