当前位置: 首页 > article >正文

C语言----共用体

共用体:
union //联合--共用体 

早期的时候,计算机的硬件资源有限,
能不能让多个成员变量 公用同一块空间 


使用方式 类似 结构体  --- 也是构造类型 

struct 结构体名
{
  成员变量名
};


union 共用体名
{
  成员变量名
}; //表示构造了一个共用体类型 

//定义变量
//定义指针 
//定义数组 
//做函数形参 
//做函数返回值类型

注意:
  1.共用体类型的大小 = 最大的成员的大小
  2.共用体初始化,只能写一个值,这个值是给第一个成员变量的值 
  3.共用体成员的访问方式 和 结构体一样
  4.共用体因为公用同一块空间
    赋值时,后赋值的会影响前面赋值的结果

  5.用途 
    a.节省空间 
    
    校园人员管理系统 
    struct student 
    {
       char name[20];
       int sno;
       float score;
    };
    
    struct teacher 
    {
       char name[20];
       int  tno;
       float salary;
    };
    
    
    struct member
    {
       char name[20];
       int  no;
       union 
       { 
          float salary;
          float score;
       }data;
    };
    
    struct member s;
    printf("score = %f\n",s.data.score);
    struct member t;
    printf("score = %f\n",s.data.salary);

b.数据转换 
    192.168.0.59 //ip地址 --- 网络环境中 ---实际对应是一个32位的数值 
    
    #include <stdio.h>
    union Ip
    {
        unsigned char ip[4];
        unsigned int iip;
    };

    int main(int argc, const char *argv[])
    {
        union Ip d = {192,168,0,59};
        
        printf("ip = %#x\n",d.iip);
        
        return 0;
    }
 

 

 


http://www.kler.cn/a/549269.html

相关文章:

  • Linux基础21-C语言篇之流程控制Ⅱ【入门级】
  • 基于SSM+uniapp的鲜花销售小程序+LW示例参考
  • Qt笔记31-69
  • 使用 GPT-SoVITS 克隆声音,很详细
  • 计算机视觉-尺度不变区域
  • vue3+element-plus中的el-table表头和el-table-column内容全部一行显示完整(hook函数)
  • Field ‘id‘ doesn‘t have a default value
  • Java 实现 Redis中的GEO数据结构
  • AtCoder Beginner Contest 393 —— E - GCD of Subset 补题 + 题解 python
  • Ubuntu添加桌面快捷方式
  • 深度学习在天文观测中的应用:解锁宇宙的奥秘
  • 虚拟环境测试部署应用
  • STM32的HAL库开发---内存保护(MPU)
  • python从入门到进去
  • 《探秘Windows 11驱动开发:从入门到实战》
  • 尚硅谷爬虫note007
  • leetcode:627. 变更性别(SQL解法)
  • 2025.2.13 Android Studio下载安装配置教程(详细版)
  • 1-10 github注册仓库
  • React VS Vue