首页 > 其他 > 详细

uinon

时间:2021-05-13 13:55:52      阅读:15      评论:0      收藏:0      [点我收藏+]

文章地址:http://c.biancheng.net/view/2035.html

union 共用体

共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员

共用体占用的内存等于最长的成员占用的内存

在同一个存储空间中存储不同的数据类型

------------------------------------------------------------------------------------------------------

应用1:

 1 struct
 2 {
 3     char name[20];
 4     int num;
 5     char sex;
 6     char profession;
 7     union
 8     {
 9         float score;
10         char course[20];
11     }sc;
12 }body;

如果一些数据不可能在同一时间同时被用到,则可以使用union

-------------------------------------------------------

应用2:

1 union
2 {
3     int i;
4     char a[2];
5 }u;

这里需要注意存储模式:大端模式和小端模式

-------------------------------------------------------

应用3:

 1 // 私家车
 2 struct owner_car
 3 {
 4     int car_num;
 5     char car_name;
 6 };
 7 // 租车
 8 struct rent_car
 9 {
10     double car_price;
11     int car_type;
12 };
13 // car联合体
14 union car_info
15 {
16     struct owner_car   ownerCar;
17     struct rent_car      rentCar;
18 };
19 struct car_data
20 {
21     int carID;
22     int status;
23     union car_info carInfo; 
24 };

如果FirstCar.status=0,程序将使用FirstCar.CarInfo.OwnerCar.car_num;

如果FirstCar.status=1,程序将使用FirstCar.CarInfo.RentCar.car_price(注:这段是一种设想情况)

通过这种方法可以对数据进行选择性组织,从而可以构建出一种很有用的数据类型!!!

 

uinon

原文:https://www.cnblogs.com/chino-ll/p/14763325.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!