设为首页 加入收藏

TOP

8.3 在变量之间共享内存
2013-10-07 12:34:14 来源: 作者: 【 】 浏览:77
Tags:8.3 变量 之间 共享 内存

8.3  在变量之间共享内存

由于过去64K内存就算很大的了,所以C++(www.cppentry.com)中有一个功能允许多个变量共享相同的内存(但显然不能同时使用)。我们称之为联合,总共有4种使用联合的基本方法:

使变量A 在程序中某个位置占用一块内存,稍后不需要A时再让不同类型的变量B占用这块内存。本书不推荐这样做,我们不值得为可能隐含错误的这种方案冒险。通过动态的内存分配,我们完全可以达到相同的结果。

有时程序中需要大型的数组,但预先不知道元素数据类型-- 数据类型将由输入的数据决定。本书同样不推荐在这种情况下使用联合,因为通过使用几个类型不同的指针,并再次动态分配内存,我们也能达到相同的结果。

联合的第三项用途是希望以两种或多种不同的方式解释相同数据的时候经常需要的。当我们有一个long类型的变量,却希望将其当作两个short类型的数值对待时,就可能产生上述需求。Windows有时将两个short数值包装在单个long类型的形参中传递给函数。如果我们希望将某块包含数值数据的内存当作字节串对待,以便能够四处移动这块内存,在这种情况下可以使用联合。

当我们预先不知道某个对象或数据值的类型时,可以使用联合来传递该对象或数据值。联合可以存储任何在允许范围内的类型。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇8.1 类的析构函数 下一篇8.6.4 使用CBox类

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: