【发布时间】:2017-12-03 15:39:22
【问题描述】:
fn main() {
let val = 0;
unsafe { foo(&val) }
}
extern "C" {
pub fn foo(val: *const u32);
}
在 C 中的实现:
void foo(unsigned* val) { *val=1; }
当然,我应该传递val: *mut u32,但是如果我传递一个不可变引用会发生什么?哪些编译器规则适用?即使我将指针传递给局部变量,val 是否保持不变?
【问题讨论】:
标签: rust