簡體   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