小编Gol*_*ime的帖子

为什么大多数 ffi 函数使用原始指针而不是引用?

无论是在ffi教程中还是在自动生成的接口中,*const T大部分时间都使用指针。据我所知,&T和之间的区别*const T只是*const T不必满足某些条件,例如不为空,并且取消引用是不安全的。

fn main() {
    unsafe {
        do_something(&TestStruct {data: 3})
    }
}

#[repr(C)]
pub struct TestStruct {
    data: u32
}

extern "C" {
    fn do_something(arg: &TestStruct);
}
Run Code Online (Sandbox Code Playgroud)

这段代码可以编译并运行。因为外部函数的用法与内部函数类似,所以我不明白为什么在那里使用原始指针作为默认值。

ffi rust raw-pointer

6
推荐指数
1
解决办法
681
查看次数

标签 统计

ffi ×1

raw-pointer ×1

rust ×1