C语言union的用法
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的用法相关推荐
- C语言union的用法及好处
Union 的用法以及好处 什么是Union? union 共用体名{ 成员列表 }; union,"联合体.共用体",在某种程度上类似结构体struct的一种数据结构,共 ...
- C语言 Union的用法 和 大小端的判断
摘自:点击打开链接 Union(联合体)的定义: union 维护足够的空间来置放多个数据成员中的"一种",而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空 ...
- c语言union(c语言union用法)
C语言-程序运行结果是?main(){unionstu{lon 我的机器+vc6运行的结果是12 我的理解是首先取最长的b的长度,但是b的长度比我的机器字长(32位即4个字节)整数倍要短,则sizeo ...
- C语言union总结
C语言union总结 最近在工作中看到前辈写了串代码,使用union,加深了对C语言的认识,感叹C语言的博大精深! 需要实现的功能: 从模块有5个按键,每个按键有5种状态.主模块与从模块串口相连.当从 ...
- SQL语言的基本用法——学习笔记
SQL语言的基本用法 结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系 ...
- oracle+union+连接,union使用方法 oracle中union的用法
定义了 union var{ uchar tempa[4]; ulong temp3; }; union var longdat小编们利用C语言定义一个简单的Union共用体结构. 你曾经喜欢小编,现 ...
- 合并多个结果集 SQL语言的高级用法
GPS平台.网站建设.软件开发.系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/inde ...
- R语言union函数计算数据对象(vector、list、dataframe)的并集:union函数计算两个vector向量、dataframe、列表list的并集
R语言union函数计算数据对象(vector.list.dataframe)的并集:union函数计算两个vector向量.dataframe.列表list的并集 目录
- Go语言MD5加密用法实例
Go语言MD5加密用法实例 本文实例讲述了Go语言MD5加密用法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import ( "crypto/md5" ...
最新文章
- CV算法复现(分类算法3/6):VGG(2014年 牛津大学)
- 媒体行业注册什么企业邮箱比较好?
- Office PPT如何切换到返回幻灯片
- as5300g2 nas软件功能_【浪潮混闪存储AS5300G5-可同时提供SAN和NAS两种服务的中端混闪存储系统】价格_厂家 - 中国供应商...
- AI表情迁移、电影字幕自动翻译等,原来是这么玩的!
- Java基础-环境变量设置及Java命令行使用
- 微信小程序 canvas 绘图问题
- 38译码器verilog代码_Verilog设计实例(2)一步一步实现一个多功能通用计数器
- linux map内存在哪里分配,linux内存分配与回收
- idea搭建maven工程
- Android 调试桥 (adb)
- Javac选项source和target的作用
- uni-app 小程序开发 (一)
- 陆小曼给徐志摩的挽联
- matlab能画五维吗,进化算法之粒子群算法和Matlab实现(多维)
- (原創) 我也不JB了 (iPhone)
- layui使用label标签
- 【图像分类】2022-MPViT CVPR
- centos7.x系统磁盘lvm扩容
- 7-10 公路村村通 (30 分)(C语言)
热门文章
- 2018回顾与2019展望:危机中看机遇,企业服务创业大时代正在到来
- Java中Integer的valueOf()方法
- Redash - 强大的开源数据可视化平台
- 如何配置HTTPS服务器
- disown and nohup
- 由LevelDB理解 LSM-Tree
- 合伙做生意,如何转让份额
- 什么是激励函数(Activation Functions)
- ICOM IC-7300 + 树莓派4B + FT8(JTDX) ICOM7300链接树莓派玩FT8
- matlab求函数极值教程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值