导航

< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

类型别名

Posted on   抑或  阅读(222)  评论(0编辑  收藏  举报

类型别名(type alias)是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它让复杂的类型名字变得简单明了、易于理解和使用,还有助于程序员清楚的知道使用该类型的真实目的。

有两种方法可用于定义类型名。传统方法是使用关键字typedef:

 

 其中关键字typedef 作为声明语句中的基本数据类型的一部分出现。含有typedef 的声明语句定义的不再是变量而是类型别名。和以前的声明语句类型一样,这里的声明符也可以包含类型修饰,从而也能由基本数据类型构造出复合类型来。

新标准规定了一种新的方法,使用别名声明来定义类型的别名:

using SI =Sales_item;//SI是Sales_item的同义词

这种方法用关键字using作为别名声明的开始,其后紧跟别名和等号,其作用是把等号左侧的名字规定成等号右侧类型的别名。

类型别名和类型的名字等价,只要是类型的名字能出现的地方,就能使用类型别名。

指针、常量和类型别名

如果某个类型别名指代的是复合类型或常量,那么把它用到声明语句里就会产生意想不到的后果。例如下面的声明语句用到了类型pstring,它实际上是类型char*的别名:

 

 上述两条声明语句的基本数据类型都是const pstring,和过去一样,const 是对给定类型的修饰。pstring 实际上是指向char 的指针,因此,const pstring 就是指向char 的常量指针,而非指向常量字符的指针。

遇到一条使用了类型别名的声明语句时,人们常常会错误地尝试把类型别名替换成他本来的样子,以理解该语句的含义:

 

 这种理解是错误的,声明符中用到pstring时,其数据类型是指针,可是用char*重写了声明语句后,数据类型就变成了char ,*成为了声明符的一部分。 前者声明了一个指向char的常量指针,改写后的形式则声明了一个指向const char 的指针。

编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 上周热点回顾(1.20-1.26)
· 【译】.NET 升级助手现在支持升级到集中式包管理
1
点击右上角即可分享
微信分享提示