联合允许在同一内存位置存储不同的数据类型。
它就像一个结构,因为它有成员。但是,联合变量对其所有成员使用相同的内存位置,并且一次只能有一个成员占用内存位置。
union声明使用关键字union、union标记和大括号{}以及成员列表。
联合成员可以是任何数据类型,包括基本类型、字符串、数组、指针和结构。
例如:
union val { int int_num; float fl_num; char str[20]; };
声明联合后,可以声明联合变量。您甚至可以将一个联合分配给同一类型的另一个联合:
union val u1; union val u2; u2 = u1;
联合用于内存管理。最大的成员数据类型用于确定要共享的内存大小,然后所有成员都使用此位置。这个过程也有助于限制内存碎片。内存管理将在后面的课程中讨论。