C语言 联合体
-
联合体
联合体是在C语言中的特殊数据类型,它允许不同的数据类型储存在同一存储器位置。您可以定义具有多个成员的联合,但是在任何给定时间只能有一个成员包含一个值。联合提供了一种将相同内存位置用于多种用途的有效方法。 -
定义联合体
要定义联合体,必须以与定义结构体时相同的方式使用union语句。union语句为您的程序定义了一个新数据类型,该数据类型具有多个成员。联合体声明的格式如下-union tag是可选的,并且每个部件定义是一个正常的变量定义,例如int i; 或float f; 或任何其他有效的变量定义。在并集定义的末尾,在最后一个分号之前,您可以指定一个或多个并集变量,但这是可选的。这是定义具有三个成员i,f和str的名为Data的union类型的方式-现在,Data类型的变量可以存储整数,浮点数或字符串。这意味着可以使用单个变量(即相同的存储位置)来存储多种类型的数据。您可以根据需要在联合体内使用任何内置或用户定义的数据类型。 union占用的内存将足以容纳union中的最大成员。例如,在上面的示例中,数据类型将占用20个字节的内存空间,因为这是字符串可以占用的最大空间。以下示例显示上述联合占用的总内存大小- -