首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > Visual C++ > 用匿名联合来节省空间
【标  题】:用匿名联合来节省空间
【关键字】:空间
【来  源】:网络

用匿名联合来节省空间

    C++支持匿名联合,即:定义一个没有确定类型的无名类。这种特殊的联合只能包含非static数据成员;也不能定义构造函数、析构函数、或者其它什么成员函数。当在一个命名空间中声明匿名联合时(例如:在全局空间中),它就被声明为static类型。


下面是匿名联合的形式:

union file://没有名字

{

file://…member

};//没有实例

匿名联合主要用来节约空间。例如:当你或者用ID,或者用关键字来确认雇员的身份,但是并不是同时使用上面两者时。一个同时含有ID和关键字的匿名联合就能够保证:在任何时刻,只有其中一项能够被使用。这是因为联合的成员数据储存在同一段地址上,相互覆盖。

union

{

int ID;

char* name;

};

ID = 1234;

retrieve_emp(ID, employee);

注意,你可以直接访问成员数据,就好像它们在联合外面声明的一样。

匿名联合的另一个用途是:自动类型转换(自动类型转换是不安全的)。例如:当要把一个指针看作十进制数时,你可以如下面的联合一样声明。

int some_val;

union

{

void *p;

int n;

};

p = &some_val;

现在没有必要把指针显式的转为int类型的:

str::cout << ”address of p is:” << n << std::endl;

揭开五种主要迭代器的神秘面纱:【上一篇】
如何检查驱动器和CD-ROM的变化:【下一篇】
【相关文章】
没有相关文章
【随机文章】
  • ACE Link gettimeofday的错误
  • Bash 提示五则
  • XP SP2升级 请你慢一点
  • 最经典的黑客技术入门知识
  • 城域光网络技术概述
  • 禁止添加打印机
  • JSP中数据源的绑定方法(Resin配置文件中和代码动态配置的方法)
  • Frontpage扩展攻击
  • Subversion 加锁功能
  • PXA270处理器PCMCIA/CF接口设计及WinCE5.0驱动实现
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.