现在的位置: 首页 > 综合 > 正文

共用体的使用

2012年12月10日 ⁄ 综合 ⁄ 共 506字 ⁄ 字号 评论关闭

以下是谭浩强老师的讲解。很容易懂。真的是大师。

1、有时需要将几个不同时出现的变量共享一个内存单元,如:将一个整型变量、实型变量、字符型变量共同放入同一个地址空间(当然这几个变量不能同时用),怎么办?

     C提供了构造类型——共用体(联合体)类型支持。
 
2、共用体变量特点:几个成员共用一段内存。
引申1:共用体变量的内存长度是多少?
              最长成员所占字节数。
引申2:共用体变量几个成员能同时存在吗?
              不能。一个时刻只有一个成员存在。否则会被覆盖。
引申3:共用体变量成员不能同时存在,那当前起作用的是谁?
                起作用的成员是最后一次存放的成员
 
这个例子用来理解共用体比较合适。金额中有小数点。

union UNKNOWN
  {
   DDWORD lc;
   BYTE c;
  }VAR1;
 
  result = 0;
 
  for (i=0;i<len;i++)
  {
    result = (result<<3) + (result<<1);
    VAR1.lc = 0;
    VAR1.c = num[i] - 0x30;
    result += VAR1.lc;
  }
  return result;

抱歉!评论已关闭.