【C语言】联合体(union)

1.联合体的含义

联合体也叫做共用体,是指联合体的所有成员共用同一块内存空间。这也就说明了,联合体的大小至少是其成员所占空间的最大值。

2. 联合体的声明

#include<stdio.h>
//声明了一个联合体
union Un 
{
	char c;
	int i;
};

int main()
{
	//联合变量的定义
	union Un un = {0};
	//计算一个联合变量的大小
	printf("%zd\n",sizeof(un));
	return 0;
}

结果
为什么会是4呢?相信有不少的读者会产生疑惑。

3. 联合体大小的计算

  • 联合体的大小至少是最大成员的大小。
  • 当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。
    图解

4. 联合体的特点

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

如何证明这一点呢?
证明一:
地址证明
可以看到不管是联合变量还是里面的成员,它们都是从同一个地址空间出开始存放数据的。

证明二:
值
解释

相关推荐

  1. C语言联合体Union)在实战中的使用技巧

    2024-07-18 00:12:03       53 阅读
  2. 深入理解C语言中的联合体union

    2024-07-18 00:12:03       42 阅读
  3. CC++的联合体union关键字含义

    2024-07-18 00:12:03       25 阅读
  4. 联合体union

    2024-07-18 00:12:03       52 阅读
  5. C语言】共用体union

    2024-07-18 00:12:03       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 00:12:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 00:12:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 00:12:03       58 阅读
  4. Python语言-面向对象

    2024-07-18 00:12:03       69 阅读

热门阅读

  1. Windows 点云生成二维栅格图 [附C++完整代码实现]

    2024-07-18 00:12:03       19 阅读
  2. go recover

    2024-07-18 00:12:03       22 阅读
  3. docker从0到1 部署gitlab 纯干货

    2024-07-18 00:12:03       22 阅读
  4. C# —— var

    2024-07-18 00:12:03       23 阅读
  5. 【VUE】10、VUE项目中多环境管理使用

    2024-07-18 00:12:03       23 阅读
  6. React学习记录 ---第六章

    2024-07-18 00:12:03       20 阅读
  7. python 读取 hdfs 数据

    2024-07-18 00:12:03       20 阅读
  8. 营销策划方案模板

    2024-07-18 00:12:03       21 阅读
  9. C#模式匹配 关系模式,多个输入

    2024-07-18 00:12:03       21 阅读
  10. NumPy中np.clip()的用法

    2024-07-18 00:12:03       21 阅读