注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

融智技术学院

融智技术学院163分站,为广大好友提供更多的帮助

 
 
 

日志

 
 

IT百科——联合类型(Union type)  

2014-05-26 13:28:32|  分类: IT百科 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

联合类型(Union type

 

在计算机科学里,一个联合是一个值,这个值也许有许多表现或者格式中的任何一个。或者,它是一个数据结构,由变量组成,变量就保存了这样的值。一些编程语言支持这种数据类型,被叫做联合类型,来描述这样的值或者变量。换句话说,一个联合类型的定义将指定大量被允许的原始类型的哪一个可以被保存在它的实例中,例如,“float或者long integer”。与一个记录(或者结构)相比,它可以被定义去包含一个floatinteger。在一个联合里,在任何时间这里只有一个值。

一个联合可以被想象为一个内存块,它被用来存储不同数据类型的变量。一旦一个新的值被分配到一个域,现存的数据将被新的数据覆盖。内存区域存储的值没有固有的类型(除了内存中的bytes或者words),但是值可以被作为许多抽象数据类型中的一个对待,有值的类型,这个被最后写入到内存区域中的值。

在类型理论里,一个联合有一个总和类型。

依赖于语言和类型,一个联合值可以被用于许多操作里,例如赋值和等式的比较,不必知道它特定的类型。其它的操作也许要求特定的类型,也可以通过一个额外的信息,或者一个被标记的联合的使用。

由于它们使用上的限制,为被标记的联合普遍只在无类型语言或者以一个类型不安全的方式中被提供(例如在C语言中)。它们有超过简单标记联合的优势,就是不要求空间去保存一个数据类型标记。

 union”的名字源于类型的正规定义。如果一个类型被认为作为所有值的集合,这个类型可以承担的,一个联合类型是简单的它的组成类型的数学上的联合,因为它可以承受任意它的域可以承受的任意值。而且,因为一个数学上的联合丢弃了重复,如果联合中不止一个域可以承受一个单独的通用的值,只从值得知哪一个域被最后写入成为可能。

然而,联合的一个有用的编程功能是为了更简单的操作,映射较小的数据元素到较大的数据元素。一个数据结构的组成,例如,4bytes和一个32位的整型,可以形成一个联合,一个有无符号64位整型的联合,因此为了比较的目的而更容易访问了,等等。

像一个结构,一个联合的所有成员默认是公有的。关键字private,publicprotected也被用于一个结构或者一个联合的内部,方式恰好相同,与它们被用在一个类里来定义private,publicprotected成员访问。

 

  评论这张
 
阅读(54)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017