fn main() {
let val = 0;
unsafe { foo(&val) }
}
extern "C" {
pub fn foo(val: *const u32);
}
thực hiện trong C:Chức năng FFI có thể sửa đổi một biến không được khai báo có thể thay đổi được không?
void foo(unsigned* val) { *val=1; }
Tất nhiên, tôi phải vượt qua val: *mut u32
, nhưng những gì xảy ra trong trường hợp mà tôi vượt qua một tài liệu tham khảo không thay đổi? Quy tắc biên dịch nào áp dụng? Liệu val
vẫn không thay đổi mặc dù tôi đang chuyển một con trỏ tới biến cục bộ?
Cảm ơn bạn rất nhiều – wemagah