Menu Close

结构体(struct) 和共同体(union)的区别

下表是结构体和共同体的主要区别。

结构体(struct) 和共同体(union)的区别
结构体(struct) 和共同体(union)的区别
Structure (结构体) Union  (共同体)
您可以使用struct关键字来定义结构体。 您可以使用union关键字定义共同体。
结构体中的每个成员都被分配一个唯一的存储位置。 在共同体中,所有数据成员共享一个内存位置。
更改一个数据成员的值不会影响结构中的其他数据成员 更改一个数据成员的值将更改其他数据成员的值。
它使您可以一次初始化多个成员。 它使您仅可以初始化第一个成员
结构的存储空间大小是每个数据成员的存储空间大小之和 共同他空间的总大小是最大数据成员的大小。
它主要用于存储各种数据类型。 它主要用于存储可用的多种数据类型中的一个数据类型。
占用的空间是每个成员的空间 占用空间是最大成员占用的空间
你可以收到任何一个成员的值 你一次只能接收一个成员的值
它支持数组。 它不支持数组

结构体优势

这是使用结构的优点/好处:

  • 结构在同一位置收集有关同一主题的多个数据。
  • 当您要收集类似数据类型和参数(例如名字,姓氏等)的数据时,这将很有帮助。
  • 这很容易维护,因为我们可以使用单个名称表示整个记录。
  • 利用结构体,我们可以用单个参数将完整的记录集传递给任何函数
  • 您可以使用结构数组来存储更多类似类型的记录。

 

共同体优势

这里是使用共同体的优点/好处:

  • 与结构体相比,它占用的内存更少。
  • 使用union时,只能直接访问最后一个变量。
  • 两个或多个数据成员使用相同的存储位置时,你可以使用共同体。
  • 只能保存一个数据成员的数据
  • 它分配的空间等于数据最大成员的空间大小。

 

结构体的缺点

这是使用结构的缺点:

  • 如果IT项目的复杂性超出了限制,则将变得难以管理。
  • 代码中一个数据结构的更改需要在许多其他位置进行更改。 因此,更改变得难以跟踪。
  • 结构体运行速度较慢,因为它需要检查所有数据的存储空间。
  • 您一次可以访问结构中的任何一个成员,而一次只可以访问共同体中的一个成员。
  • 结构体支持数组

共同体的缺点

这是使用共同体的缺点:

  • 您一次只能使用一位共同体成员。
  • 所有共同体变量均不能一次初始化或与不同值一起使用。
  • 共同体为其所有成员分配一个公共存储空间。

 

 

Posted in C语言, C语言

发表评论

相关链接