C程序中结构和联合的区别

在C语言中,我们有用于相同类型数据和多个类型数据的容器。对于存储相同类型的数据,C提供了存储相同类型的数据变量的数组的概念,而对于存储不同类型的数据,C具有结构和联合的概念,也可以存储不同类型的数据变量。

由于Structure和Union都可以在其中保存不同类型的数据,但是现在基于内部实现,我们可以在这两个容器中找到一些区别。

以下是“结构”和“联合”之间的重要区别。

序号结构体联盟
1定义结构是用C定义的容器,用于存储不同类型的数据变量,并且还支持用户定义的变量存储。另一方面,Union也是C中类似的容器,它还可以容纳不同类型的变量以及用户定义的变量。
2内部实施C中的结构是内部实现的,因为每个输入成员都有单独的存储位置在联盟内存仅分配给所有其他输入变量中大小最大的成员的情况下,所有这些变量都共享同一位置。
3语法在C中声明一个Structure的语法如下:
struct struct_name{
   type element1;
   type element2;
   .
   .
} variable1, variable2, ...;
在C中声明Union的其他语法如下:
union u_name{
   type element1;
   type element2;
   .
   .
} variable1, variable2, ...;
4尺寸如定义中 ,结构没有为其成员共享位置,因此结构的大小等于或大于所有数据成员的大小总和。另一方面,Union对其每个成员没有单独的位置,因此其大小等于或等于所有数据成员中最大成员的大小。
5值储存如上 ,在“结构”的情况下,每个输入数据成员都有特定的存储位置,因此它可以存储不同成员的多个值。在使用Union的情况下,所有输入数据成员只有一个共享内存分配,因此它一次为所有成员存储一个值。
6初始化在Structure中,可以同时初始化多个成员。另一方面,如果是Union,则只有第一个成员可以一次初始化。