embed-c:可將C程式碼直接嵌入到Rust程式碼中

banq發表於2022-02-25

embed-c是一個讓你在 Rust 程式碼檔案中嵌入C 碼的crate。C 程式碼在編譯時使用C2Rust翻譯成Rust程式碼,這意味著它可以與 Rust 完全互操作。C 程式碼可以呼叫 Rust 程式碼,反之亦然。

#![feature(rustc_private)] 

use embed_c::embed_c;

embed_c! {
    int add(int x, int y) {
        return x + y;
    }
}

fn main() {
    let x = unsafe { add(1, 2) };
    println!("{}", x);
}


D語言採取了不同的方法:AC編譯器是D編譯器二進位制檔案的一部分,稱為 ImportC。它將標準 C11 程式碼編譯成AST,然後交給 D 編譯器。

相關文章