How to use union in Rust

1 Answer

0 votes
// Define a union
union MyUnion {
    i: i32,
    f: f32,
}

fn main() {
    // 1. Initialization (you can only initialize one field at a time)
    let mut u = MyUnion { i: 42 };

    // 2. Reading and writing require an 'unsafe' block
    unsafe {
        println!("u.i as integer: {}", u.i);

        // Mutating a field
        u.f = 3.14;
        
        // Reading the same memory as a different type (type punning)
        println!("u.f as float: {}", u.f);
    }
}


/*
run:

u.i as integer: 42
u.f as float: 3.14

*/

 



answered 23 hours ago by avibootz
...