union在C中本质上是一个结构体,用法和struct相似,用

union 名称 {//... 成员
};

来声明

类型使用时,要在名称前加上关键字union

union 类型名称 变量名称;

在调用时用后缀表达式expression.identifier的形式来调用成员:

a.member1 = 10; // a为union
p->member1 = 20; // p为union的指针

但有一些不同点:
1.union,顾名思义,就是多个成员共用一块内存。在编译时会选取成员中长度最长的来声明。也就是说在如下与程序片段中:

union a { //声明了三个成员,但是长度不一(后面sizeof的结果不同机器结果不同,但double肯定是最长的),于是编译器会选取double的长的作为union a的长度int a1;    // sizeof(int) = 4float a2;  // sizeof(float) = 8double a3; // sizeof(double) = 16
};

也就是说,上述union声明在内存中等同于

struct a {double a3;
};

2.根据第一条的特点,在对union成员进行赋值后,要注意使用时一定要调用赋值过的成员。

C语言union的用法相关推荐

  1. C语言union的用法及好处

    Union 的用法以及好处 什么是Union? union 共用体名{     成员列表 }; union,"联合体.共用体",在某种程度上类似结构体struct的一种数据结构,共 ...

  2. C语言 Union的用法 和 大小端的判断

    摘自:点击打开链接 Union(联合体)的定义: union 维护足够的空间来置放多个数据成员中的"一种",而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空 ...

  3. c语言union(c语言union用法)

    C语言-程序运行结果是?main(){unionstu{lon 我的机器+vc6运行的结果是12 我的理解是首先取最长的b的长度,但是b的长度比我的机器字长(32位即4个字节)整数倍要短,则sizeo ...

  4. C语言union总结

    C语言union总结 最近在工作中看到前辈写了串代码,使用union,加深了对C语言的认识,感叹C语言的博大精深! 需要实现的功能: 从模块有5个按键,每个按键有5种状态.主模块与从模块串口相连.当从 ...

  5. SQL语言的基本用法——学习笔记

    SQL语言的基本用法   结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系 ...

  6. oracle+union+连接,union使用方法 oracle中union的用法

    定义了 union var{ uchar tempa[4]; ulong temp3; }; union var longdat小编们利用C语言定义一个简单的Union共用体结构. 你曾经喜欢小编,现 ...

  7. 合并多个结果集 SQL语言的高级用法

    GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...

  8. R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集

    R语言union函数计算数据对象(vector.list.dataframe)的并集:union函数计算两个vector向量.dataframe.列表list的并集 目录

  9. Go语言MD5加密用法实例

    Go语言MD5加密用法实例 本文实例讲述了Go语言MD5加密用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import (     "crypto/md5" ...

最新文章

  1. CV算法复现(分类算法3/6):VGG(2014年 牛津大学)
  2. 媒体行业注册什么企业邮箱比较好?
  3. Office PPT如何切换到返回幻灯片
  4. as5300g2 nas软件功能_【浪潮混闪存储AS5300G5-可同时提供SAN和NAS两种服务的中端混闪存储系统】价格_厂家 - 中国供应商...
  5. AI表情迁移、电影字幕自动翻译等,原来是这么玩的!
  6. Java基础-环境变量设置及Java命令行使用
  7. 微信小程序 canvas 绘图问题
  8. 38译码器verilog代码_Verilog设计实例(2)一步一步实现一个多功能通用计数器
  9. linux map内存在哪里分配,linux内存分配与回收
  10. idea搭建maven工程
  11. Android 调试桥 (adb)
  12. Javac选项source和target的作用
  13. uni-app 小程序开发 (一)
  14. 陆小曼给徐志摩的挽联
  15. matlab能画五维吗,进化算法之粒子群算法和Matlab实现(多维)
  16. (原創) 我也不JB了 (iPhone)
  17. layui使用label标签
  18. 【图像分类】2022-MPViT CVPR
  19. centos7.x系统磁盘lvm扩容
  20. 7-10 公路村村通 (30 分)(C语言)

热门文章

  1. 2018回顾与2019展望:危机中看机遇,企业服务创业大时代正在到来
  2. Java中Integer的valueOf()方法
  3. Redash - 强大的开源数据可视化平台
  4. 如何配置HTTPS服务器
  5. disown and nohup
  6. 由LevelDB理解 LSM-Tree
  7. 合伙做生意,如何转让份额
  8. 什么是激励函数(Activation Functions)
  9. ICOM IC-7300 + 树莓派4B + FT8(JTDX) ICOM7300链接树莓派玩FT8
  10. matlab求函数极值教程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值