typedef的作用

来源:互联网 发布:淘宝卖家登记表怎么看 编辑:程序博客网 时间:2024/05/19 09:42
typedef的作用:
1)用typedef简化指向多维数组的指针的定义(C++primer P124)
2)用typedef简化函数指针的定义(C++primer P237)
3) 用typedef简化复杂类型的定义,如pair类型和map的value_type(C++primer P307,P313)
下面转自http://book.douban.com/annotation/13487433/
对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;
不过实际应用中这种小细节的东西用的应该不会很多。也算一点并不实用的领悟吧。
转载自http://blog.sina.com.cn/s/blog_790bb7190101bvcz.html
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 黑裤子洗成红色怎么办 衣服烘干后皱了怎么办 毛衣洗了变长了怎么办 boy烫金被洗掉了怎么办 黑衣服洗得发白怎么办 黑衣服洗后发白怎么办 黑裤子洗了发白怎么办 黑衣服旧了发白怎么办 黑色衣服洗白了怎么办 黑衣服洗了泛白怎么办 刚买的衣服掉色怎么办 棉质的衣服褪色怎么办 黑裤子晒掉色了怎么办 新买的衣服褪色怎么办 衣服洗了掉毛怎么办 衣服受潮长了斑点怎么办 黑色的衣服粘毛怎么办 黑衣服容易粘毛怎么办 衣服上粘了毛毛怎么办 黑衣服防止粘毛怎么办 洗黑色衣服掉毛怎么办 兔毛的衣服掉毛怎么办 带绒的衣服掉毛怎么办 黑裤子被84掉色怎么办 买的衣服掉毛怎么办 裤子穿久了泛亮怎么办 新买的裤子褪色怎么办 黑裤子掉毛严重怎么办 黑裤子洗完发白怎么办 新买羊绒衫掉毛怎么办 皮草毛卷起来了怎么办 小孩衣服洗不干净怎么办 衣服沾上钢笔水怎么办 羊绒衫洗了掉毛怎么办 白衬衫弄上墨水怎么办 羊毛衬衫洗错了怎么办 婚纱照拍的太丑怎么办 微信加人没反应怎么办 新买的毛毯有味怎么办 科二第一次练车怎么办 毛呢大衣起球了怎么办