【C++】学习笔记八——共用体
来源:互联网 发布:什么源码值得读知乎 编辑:程序博客网 时间:2024/06/05 07:59
共用体
共用体是一种数据格式,它能够存储不同的数据类型,但在同一时间只能存储其中的一种类型。共用体的用途之一是,当数据使用两种或更多种格式,但不会同时使用这些格式时,可以节省空间。
union one4all{ int int_val; long long_val; double double_val;};
可以使用one4all变量来存储int、long、double,条件是在不同的时间进行:
one4all pail;pail.int_val = 15;cout << pail.int_val;pail.double_val = 1.38;cout << pail.double_val;
pail有时可以是int变量,有时又可以是double变量。
由于共用体每次只能存储一个值,因此他必须有足够的空间来存储最大的成员,所以,共用体的长度为其最大成员的长度。
假设管理一个小商品目录,其中有一些商品的ID为整数,而另一些ID为字符串,可以这样做:
struct widget{ char brand[20]; int type; union id { long id_num; char id_char[20]; } id_val;};...widget prize;...if (prize.type == 1) cin >> prize.id_val.id_num;else cin >> prize.id_val.id_char;
匿名共用体(anonymous union)没有名称,其成员将成为位于相同地址处的变量。显然,每次只有一个成员是当前成员:
struct widget{ char brand[20]; int type; union { long id_num; char id_char[20]; };};...widget prize;...if (prize.type == 1) cin >> prize.id_num;else cin >> prize.id_char;
此时由于共用体是匿名的,因此id_num和id_char被视为prize的两个成员,他们的地址相同,所以不需要中间标识符id_val。
共用体常用于(但并非只能用于)节省内存。
0 0
- 【C++】学习笔记八——共用体
- C语言—共用体
- C语言回顾(八、结构体,联合/共用体,枚举)——iOS开发基础
- C/C++学习笔记24:结构体与共用体
- C语言学习笔记-结构体、共用体、枚举
- 【C语言】——union共用体
- 黑马程序员——Objective-C学习笔记(八): 属性
- C语言学习笔记(八)——其他计算机知识
- 嵌入式软件开发培训笔记——C高级 结构体与共用体
- c语言学习笔记八
- C语言学习笔记<八>
- C学习笔记 9 共用体内存分配
- C语言归纳—联合体/共用体/Union
- 《c语言从入门到精通》看书笔记——第11章 结构体和共用体
- C语言:共用体
- C语言--共用体
- C语言:共用体
- C语言-共用体
- nux下取代top的进程管理工具 htop
- 【飞阅】XML中常用JS代码块
- 第十二周项目4 利用遍历思想求解图问题(4)
- 每天一道编程题——Have Fun with Numbers
- [Unity3d]Player Settings导出设置
- 【C++】学习笔记八——共用体
- Python 修饰图片
- Android WebView使用以及与JavaScript进行交互实例
- java定义静态变量时合并多个List
- 第十三周项目3-Dijkstra算法验证
- Spring(一)——总体介绍
- Recyclerview style
- (0010) iOS 开发之UI布局兼容 4s/5/6/7 屏幕解决方案
- leetcode 404 Sum of Left Leaves