C++ 共用体
2020-06-05 16:01:03来源:博客园 阅读 ()
C++ 共用体
——可用于存储多种数据类型数据,但只能同时存储其中一种的一个值
union one4all
{
int int_val;
long long_val;
double double_val;
};
one4all pail;
pail.int_val = 15; // store an int
cout << pail.int_val;
pail.double_val = 1.38; // store a double, int value is lost
cout << pail.double_val;
pail有时可以是int变量,有时可以是double变量...由于共用体每次只能存储一个值,因此共用体的长度为其最大成员的长度。
用途:
当数据项使用两种或更多种格式(但不会同时使用)时,可节省空间;它常用于操作系统数据结构或硬件数据结构。
需要注意的是:程序员负责决定当前哪个成员是活动的,也就是说程序无法自己判断或使用当前共用体使用的成员
匿名共用体:
——匿名共用体没有名称,其成员将成为位于相同地址处的变量。每次只有一个成员是当前的成员
struct widget
{
char brand[20];
int type;
union
{
long id_num; // anonumous union
char id_char[20]; // other widgets
};
...
widget prize;
...
if (prize.type == 1)
cin >> prize.id_num; // 使用变量id_num
else
cin >> prize.id_char; // 使用变量id_char
由于共用体是匿名的,因此id_num和id_char被视为prize的两个成员,它们的地址相同,所以不需要中间标识符id_val
原文链接:https://www.cnblogs.com/suui90/p/13048024.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
