⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 codetc28.dat

📁 这是本汇编指令字典
💻 DAT
字号:
共用体

  有时需要使几种不同类型的变量存放到同一段内存单元中.例如,可把一个整型变量,一个字符型变量,一个实型变量放在同一个地址开始的内存单元中.也就是使用覆盖技术,  几个变量互相覆盖.这种使几个不同的变量共占同一段内存的结构,称为"共用体"类型的结构.

  定义共用体类型变量的一般形式为
  union 共用体名
  {  
    成员表列
  }变量列表;
  
  例如:  union data
         {
            int i;
            char ch;
            float f;
          }a,b,c;

         也可以将类型声明与变量定义分开:
         union data
         {
            int i;
            char ch;
            float f;
          };
         union data a,b,c;
  
  可看到"共用体"与"结构体"的定义形式相似.但它们的含义是不同的.
  结构体变量所占内存长度是各成员的内存长度之和.每个成员分别占有其自已的内存单元.
  共用体变量所占的内存长度等于最长的成员的长度.

  共用体变量的引用方式
  只有先定义共用体变量才能引用它.而且不能引用共用体变量,而只能引用共用体变量中的成员.
  例如,前面定义了a,b,c为共用体变量,下面的引用方式是正确的:
  a.i    (引用共用体变量中的类型变量 i)
  a.ch   (引用共用体变量中的类型变量 ch)
  a.f    (引用共用体变量中的类型变量 f)
  不能只引用共用体变量,下面的引用方式是错误的,例如
  printf("%d",a)

  共用体类型数据的特点
  在使用共用体类型数据时要注意以下一些特点:
  (1) 同一个内存段可以用来存放几种不同类型的成员,但在每一瞬间时只能存放其中一种,而不是同时存放几种.也就是说,每一瞬间时只有一个成员起作用,其他的成员不作用      ,即不是同时都存在和起作用的.
  (2) 共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用.
  (3) 共用体变量的地址和它的各成员的地址都是同一地址.
  (4) 不能对共用体变量名赋值,也不能企图引用变量名来得到一个值,又不能在定义共用体变量时对它初始化.
  (5) 不能把共用体变量作为函数参数,也不能使函数带回共用体变量,但可以使用指向共用体变量的指针.
  (6) 共用体类型可以出现在结构体类型定义中,也可以定义共用体数组.反之,结构体可以出现在共用体类型定义中,数组也可以作为共用体的成员.
  

  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -