[英]How can I access a C global variable/constant in Rust FFI?
我需要訪問從 Rust 中的 C 導出的常量的值。
我想從實際符號中讀取值,而不僅僅是將值復制“n”粘貼到 Rust(在我的情況下,該值是一個指針,C 檢查指針是否相等)。
extern void *magic;
獲得magic: *const c_void
的語法是什么magic: *const c_void
在 Rust 中可讀?
use std::os::raw::c_void;
extern "C" {
#[no_mangle]
static magic: *const c_void;
}
或者,在extern
之前可以有#[link(kind="static", name="<c library name>")]
來獲取實際鏈接的符號。
外部可鏈接的項目,即使是常量,也需要用static
聲明,而不僅僅是const
關鍵字(否則你會得到“外部項目不能是const
”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.