找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2077|回复: 0
打印 上一主题 下一主题
收起左侧

typedef用法

[复制链接]
跳转到指定楼层
楼主
ID:94349 发表于 2015-11-2 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
typedef用法




typedef的作用:


1)用typedef简化指向多维数组的指针的定义(C++primer P124)
2)用typedef简化函数指针的定义(C++primer P237)
3) 用typedef简化复杂类型的定义,如pair类型和map的value_type(C++primer P307,P313)



对typedef用法的领悟:

以前一直以为typdef的用法不过是typedef A B就是把类型B作为类型A的一个新名字。但是碰到像typedef string *pstring或者是typedef int int_array[4]这样的定义就比较傻眼。

然后慢慢摸爬滚打明白了typedef的精髓。那就是typdef,定义什么就是什么。

比如定义一个string类型的指针变量,是string *str1;这个时候str1是变量名。

如果把这句话前面加上一个typdef,也就是typedef string *str2;这个时候str2就不是变量名,而是类型名,它的类型就是变量str1所具有的类型。也就是string *类型。

所以typedef string *pstring这句话的意思就豁然开朗了,那么我以后可以拿pstring去定义别的变量,不如pstring pstr;这就定义了一个指向string的指针对象pstr。

再比如typedef int int_array[4];如果去掉前面的typedef那么定义的是一个叫做int_array的含有4个元素的数组。前面加上typedef以后,int_array就变成了含有4个元素的数组类型的替代名。以后要有int_array ia;这句话我们就知道它等同于int ia[4];

再比如这一页的指向函数的指针:

bool (*pf)(const string&, const string&)

使用typdef以后,定义这一类型(即同样的形参以及同样的返回类型)的函数指针语句都将得到简化。方法如下:

typedef bool (*cmpFcn)(const string&, const string&);

用新得到的类型来定义两个新的函数指针pf1和pf2,它们所指向的函数都有两个const string&形参且返回bool类型值。以下是定义:

cmpFcn pf1;

cmpFcn pf2;




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表