繁体   English   中英

如何在 Rust FFI 中访问 C 全局变量/常量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM