11-联合体类型
联合体类型 — The Rust Reference
1分钟内可阅读完
译文 · 基于 The Rust Reference
r[type.union]
联合体类型
r[type.union.intro]
联合体类型是指名的、异构的类 C 联合体,由 union 项的名称表示。
r[type.union.access] 联合体没有「活动字段」的概念。相反,每一次联合体访问都会把联合体内容的一部分 transmute 为所访问字段的类型。
r[type.union.safety]
由于 transmute 可能导致意外或未定义行为,从联合体字段读取需要 unsafe。
r[type.union.constraint] 联合体字段类型也被限制为某一类型子集,以保证它们永远不需要析构。更多细节见该项的文档。
r[type.union.layout]
默认情况下 union 的内存布局未定义(特别地,字段不必位于偏移 0),但可以用 #[repr(...)] 属性固定布局。