亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C 工会

C 联合

在本教程中,您将了解 C 编程中的联合。更具体地说,如何创建联合、访问其成员以及了解联合和结构之间的区别。

union 是一种用户定义的类型,类似于 C 中的结构,除了一个关键区别。

结构分配足够的空间来存储其所有成员,而 联合一次只能保存一个成员值 .


如何定义联合?

我们使用 union 定义联合的关键字。举个例子:

union car
{
  char name[50];
  int price;
};

上面的代码定义了一个派生类型union car .


创建联合变量

定义联合时,它会创建用户定义的类型。但是,没有分配内存。要为给定的联合类型分配内存并使用它,我们需要创建变量。

下面是我们创建联合变量的方法。

union car
{
  char name[50];
  int price;
};

int main()
{
  union car car1, car2, *car3;
  return 0;
}

另一种创建联合变量的方法是:

union car
{
  char name[50];
  int price;
} car1, car2, *car3;

在这两种情况下,联合变量 car1 , 汽车2 , 和一个联合指针 car3 union car 类型已创建。


访问工会成员

我们使用 . 操作员访问工会的成员。为了访问指针变量,我们使用 -> 运营商。

在上面的例子中,


联合和结构的区别

下面举个例子来说明联合和结构的区别:

#include <stdio.h>
union unionJob
{
   //defining a union
   char name[32];
   float salary;
   int workerNo;
} uJob;

struct structJob
{
   char name[32];
   float salary;
   int workerNo;
} sJob;

int main()
{
   printf("size of union = %d bytes", sizeof(uJob));
   printf("\nsize of structure = %d bytes", sizeof(sJob));
   return 0;
}

输出

size of union = 32
size of structure = 40

为什么联合变量和结构变量的大小会有这种差异?

这里,sJob 的大小 是 40 个字节,因为

但是,uJob 的大小 是 32 个字节。这是因为联合变量的大小始终是其最大元素的大小。在上面的例子中,它的最大元素的大小,(name[32] ),为 32 个字节。

通过联合,所有成员共享相同的内存 .


示例:访问联盟成员

#include <stdio.h>
union Job {
   float salary;
   int workerNo;
} j;

int main() {
   j.salary = 12.3;

   // when j.workerNo is assigned a value,
   // j.salary will no longer hold 12.3
   j.workerNo = 100;

   printf("Salary = %.1f\n", j.salary);
   printf("Number of workers = %d", j.workerNo);
   return 0;
}

输出

Salary = 0.0
Number of workers = 100

要了解联合在哪里使用,请访问我们为什么需要 C 联合?


C语言

  1. Java 枚举
  2. Java枚举构造函数
  3. C - 工会
  4. 如何确定气动阀的尺寸
  5. 人工智能在制造业市场规模到 2026 年将达到 47.98 亿美元
  6. CNC 加工中的尺寸限制
  7. 将铝棒料切割成一定尺寸
  8. 什么是管接头?
  9. 如何确定商用空调的尺寸
  10. 枪械加工需要多大尺寸的车床?
  11. 空气接收器的尺寸问题
  12. 如何确定工业空气压缩机的尺寸?