定义类型别名(typedef,using)
2016-09-19 19:34
295 查看
说到类型别名,无非是给类型名(如int,char,float,double,bool)取一个比较有特殊含义的名字而已
最常用的关键莫过于 typedef 吧
typedef最常见的用法是与结构体struct连用,这是C语言的语法,C++已经不这样用了(或者很少这样用)。
在C语言中声明结构体常用以下格式:
其中Name1为结构体名,同时它还有两个‘外号’:Name2,Name3。这是因为声明结构体的时候使用了typedef,就会产生这样的作用,为的就是给它取不同的外号,在声明变量的时候,好凭借外号明白它的作用。比如下面这一段数据结构中常见的代码:
如果没有用typedef,则用法就与C++一样了。
只不过此时,如果在后面加上Name2,Name3,就不是给Name1取外号了,而是用声明的结构体定义两个变量Name2,Name3。这点是最大的区别。
除此之外,typedef,依旧用于‘取外号’,比如
上段代码就是给int型的数据类型起一个外号叫zx,此时用zx和int具有相同的功能,temp A相当于int A;
C++11中增加了另外一个关键字来设置类型别名:using
比如上面的zx别名可用以下一行代码实现
最常用的关键莫过于 typedef 吧
typedef最常见的用法是与结构体struct连用,这是C语言的语法,C++已经不这样用了(或者很少这样用)。
在C语言中声明结构体常用以下格式:
typedef struct Name1{ elemtype ElemName; }Name2,Name3;
其中Name1为结构体名,同时它还有两个‘外号’:Name2,Name3。这是因为声明结构体的时候使用了typedef,就会产生这样的作用,为的就是给它取不同的外号,在声明变量的时候,好凭借外号明白它的作用。比如下面这一段数据结构中常见的代码:
typedef struct Node{ elemtype ElemName; }Linklist;
如果没有用typedef,则用法就与C++一样了。
struct Name1{ elemtype ElemName; };
只不过此时,如果在后面加上Name2,Name3,就不是给Name1取外号了,而是用声明的结构体定义两个变量Name2,Name3。这点是最大的区别。
除此之外,typedef,依旧用于‘取外号’,比如
typedef int zx;
上段代码就是给int型的数据类型起一个外号叫zx,此时用zx和int具有相同的功能,temp A相当于int A;
C++11中增加了另外一个关键字来设置类型别名:using
比如上面的zx别名可用以下一行代码实现
using zx=int;
相关文章推荐
- 学习笔记—arraylist单线程下ConcurrentModificationException
- 第四周项目3-单链表应用(1)
- QT中QWidget、QDialog及QMainWindow的区别
- Jsrender初体验
- 汇编语言寻址方式
- 最大的奇约数
- mysql用户权限管理
- Android弹出 确认对话框
- 分享Top 7 WordPress Plugins List你必须用的上
- PHP日记——Lavarel常用语句之Route篇
- image的加载事件(onload)和加载状态(complete)
- IOS 基于ffmpeg的播放器kxmovie的音视频同步
- https://git.oschina.net/mkk/spring-logback/tree/master/src/main/webapp?dir=1&filepath=src%2Fmain%2Fwebapp&oid=0124d58e997222d18a2415dddbe6054911e67b68&sha=742f8b62bb4057609c40a1062134721317ccf78f
- 外观模式
- Asp.NET MVC+WebAPI跨域调用
- SSO单点登录使用token机制来验证用户的安全性
- Vector与 ArrayList、Hashtable 与 HashMap、ArrayList 与 LinkedList的区别
- Android UI 优化——使用HierarchyViewer工具
- 保持view宽高比,实现屏幕自适应
- hdu 5900 QSC and Master(区间dp 沈阳网络赛)