联合类型
联合类型是一种名义上的、异构的类 C 语言联合,由union
项目的名称表示。
联合没有“活动字段”的概念。相反,每次联合访问都会将联合内容的一部分转换为被访问字段的类型。由于转换可能会导致意外或未定义的行为,因此需要使用 unsafe
来读取联合字段。联合字段类型也被限制为类型的子集,以确保它们永远不需要释放。有关详细信息,请参阅项目文档。
默认情况下,union
的内存布局是未定义的(特别是,字段不必位于偏移量 0 处),但可以使用 #[repr(...)]
属性来固定布局。