Rust 强制类型转换

原创
2020/10/14 20:15
阅读数 101

Rust 的强制类型转换的时候要先转为离自己最近的类型的指针,再转为其他指针,然后 Drefer 得到新类型的变量。



struct A {
    a: u64,
    b: u64,
    c: u64,
    d: u64,
}

#[derive(Debug, PartialEq)]
struct B {
    a: u8,
    b: u8,
    c: u8,
    d: u8,
    e: u64,
    f: u64,
    g: u64,
}

fn main() {
    let a = A { a: 95, b: 96, c: 97, d: 98 };
    let b = unsafe {   & *(&a as *const A as * const B) };
    assert_eq!(b, &B{a:98, b:0, c:0, d:0, e:95, f:96, g:97});
}

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部