下表是结构体和共同体的主要区别。
Structure (结构体) | Union (共同体) |
您可以使用struct关键字来定义结构体。 | 您可以使用union关键字定义共同体。 |
结构体中的每个成员都被分配一个唯一的存储位置。 | 在共同体中,所有数据成员共享一个内存位置。 |
更改一个数据成员的值不会影响结构中的其他数据成员 | 更改一个数据成员的值将更改其他数据成员的值。 |
它使您可以一次初始化多个成员。 | 它使您仅可以初始化第一个成员 |
结构的存储空间大小是每个数据成员的存储空间大小之和 | 共同他空间的总大小是最大数据成员的大小。 |
它主要用于存储各种数据类型。 | 它主要用于存储可用的多种数据类型中的一个数据类型。 |
占用的空间是每个成员的空间 | 占用空间是最大成员占用的空间 |
你可以收到任何一个成员的值 | 你一次只能接收一个成员的值 |
它支持数组。 | 它不支持数组 |
结构体优势
这是使用结构的优点/好处:
- 结构在同一位置收集有关同一主题的多个数据。
- 当您要收集类似数据类型和参数(例如名字,姓氏等)的数据时,这将很有帮助。
- 这很容易维护,因为我们可以使用单个名称表示整个记录。
- 利用结构体,我们可以用单个参数将完整的记录集传递给任何函数
- 您可以使用结构数组来存储更多类似类型的记录。
共同体优势
这里是使用共同体的优点/好处:
- 与结构体相比,它占用的内存更少。
- 使用union时,只能直接访问最后一个变量。
- 两个或多个数据成员使用相同的存储位置时,你可以使用共同体。
- 只能保存一个数据成员的数据
- 它分配的空间等于数据最大成员的空间大小。
结构体的缺点
这是使用结构的缺点:
- 如果IT项目的复杂性超出了限制,则将变得难以管理。
- 代码中一个数据结构的更改需要在许多其他位置进行更改。 因此,更改变得难以跟踪。
- 结构体运行速度较慢,因为它需要检查所有数据的存储空间。
- 您一次可以访问结构中的任何一个成员,而一次只可以访问共同体中的一个成员。
- 结构体支持数组
共同体的缺点
这是使用共同体的缺点:
- 您一次只能使用一位共同体成员。
- 所有共同体变量均不能一次初始化或与不同值一起使用。
- 共同体为其所有成员分配一个公共存储空间。