认识联合体(共用体)以及联合体大小的计算方法

本文详细介绍了C语言中的联合体(共用体)概念,阐述了其特点,即成员共享内存空间,并探讨了联合体大小计算的规则,包括至少为最大成员大小以及对齐约束。通过示例解释了如何根据最大对齐数和成员大小确定联合体的实际大小,帮助理解内存管理和数据结构在编程中的应用。

        目录

1、什么是联合体

2、联合体的特点

3、联合体大小的计算


 

1、什么是联合体

联合体是一种特殊的自定义类型,联合体中的成员可以共用一部分内存,所以也叫做共用体

联合体的声明和定义如下:

//联合类型的声明
union Un
{
 char c;
 int i;
};

//联合变量的定义
union Un un;

2、联合体的特点

联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联 合至少得有能力保存最大的那个成员)。

以上面的为例,整型变量 i 和 字符型变量 c 共用一个字节,此时联合体的大小就是变量 i 的大小。

3、联合体大小的计算

联合体大小的计算需要满足如下两个条件:

  • 联合的大小至少是最大成员的大小。
  • 联合体大小必须是最大对齐数的整数倍。当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。
#include <stdio.h>
union Un1
{				//每
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值