栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 -- 联合(共用体)union

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 -- 联合(共用体)union

联合
  • 联合(共用体)union
    • 联合类型的定义
    • 联合的特点
    • 联合大小的计算

联合(共用体)union 联合类型的定义

联合也是一种特殊的自定义类型,这种类型定义的变量也包含也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体)。
比如:

//联合体
union Test
{
	int a;
	double b;
	char c;
};
void main()
{
	union Test t; //联合变量的定义
	printf("%dn", sizeof(t)); //8
}
联合的特点

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

union Test
{
	char c; //char类型1字节
	int i; //int类型4字节
};
void main()
{
	union Test t;
	printf("sizeof(t) = %dn", sizeof(t)); //4
}
联合大小的计算
  • 联合的大小至少是最大成员的大小
  • 当最大成员大小不是最大对齐数的整数倍时,就要对其到最大对齐的整数倍
union Test1 //8
{
	char c[5]; //5
	int i; //4
};
union Test2 //16
{
	short s[7]; //14
	int i; //4
};
void main()
{
	union Test1 t1;
	union Test2 t2;
	printf("sizeof(t1) = %dn", sizeof(t1)); //8
	printf("sizeof(t2) = %dn", sizeof(t2)); //16
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号