Unions

์œ ๋‹ˆ์˜จํƒ€์ž…์€ ์—ด๊ฑฐํ˜•(enum)๊ณผ ๊ฐ™์ง€๋งŒ ์ง์ ‘ ํ™œ์„ฑ ํ•„๋“œ๋ฅผ ์ถ”์ฒ™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

Unions are like enums, but you need to track the active field yourself:

#[repr(C)]
union MyUnion {
    i: u8,
    b: bool,
}

fn main() {
    let u = MyUnion { i: 42 };
    println!("int: {}", unsafe { u.i });
    // b๋Š” ์ •์˜ ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค!
    println!("bool: {}", unsafe { u.b });  // Undefined behavior!
}