我需要访问Rust中从C导出的常量的值。
我想从实际符号中读取值,而不仅仅是将'n'的值复制到Rust(在我的例子中,值是指针,C检查指针是否相等)。
extern void *magic;
Rust中可以读取magic: *const c_void
的语法是什么?
答案 0 :(得分:4)
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
”失败。 ¯\ _(ツ)_ /¯