Chinaunix首页 | 论坛 | 博客
  • 博客访问: 432304
  • 博文数量: 103
  • 博客积分: 1455
  • 博客等级: 上尉
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-15 22:17
文章分类

全部博文(103)

文章存档

2013年(4)

2012年(99)

我的朋友

分类: C/C++

2012-09-27 11:19:59

 (参考“共用体”百科词条)是一种特殊形式的变量,使用union来定义
  共用体(有些人也叫"联合")声明和共用体定义与十分相似。其形式为:
  union 共用体名{
   成员名;
  数据类型 成员名;
  ...
  } 变量名;
  共用体表示几个变量共用一个内存位置,在不同的时间保存不同的数据类型和不同长度的变量。在union中,所有的共用体成员共用一个空间,并且同一时间只能储存其中一个的值。
  下例表示声明一个共用体foo:
  union foo{
  int i;
  char c;
  double k;
  };
  再用已声明的共用体可定义共用体变量。
  例如用上面说明的共用体定义一个名为bar的共用体变量, 可写成:
  union foo bar;
  在共用体变量bar中, i和c共用同一内存位置。
  当一个共用体被声明时, 自动地产生一个变量, 其长度为联合中最大的变量长度的整数倍。以上例而言,最大长度是double数据类型,所以foo的内存空间就是double型的长度。
  union foo
  {
  char s[10];
  int i;
  };
  在这个union中,foo的内存空间的长度为12,是int型的3倍,而并不是的长度10。若把int改为double,则foo的内存空间为16,是double型的两倍。
阅读(1156) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~