Rust 学习笔记 27:FFI 交互 (Foreign Function Interface)
Rust 学习笔记 27:FFI 交互 (Foreign Function Interface) “Rust is what C++ should have been.” (Debatable, but Rust interacts with C perfectly) FFI 允许 Rust 代码调用其他语言写的函数,或者让其他语言调用 Rust 函数。 由于 C 语言是计算机世界的"通用语" (Lingua Franca),FFI 通常指的就是与 C 语言的交互。 1. 调用 C 函数 要在 Rust 中调用 C 函数,我们需要: 使用 extern "C" 块声明外部函数签名。 在 unsafe 块中调用它们(因为编译器无法保证 C 代码的安全性)。 1extern "C" { 2 fn abs(input: i32) -> i32; 3} 4 5fn main() { 6 unsafe { 7 println!("Absolute value of -3 according to C: {}", abs(-3)); 8 } 9} Rust 默认会链接系统的标准 C 库 (libc),所以像 abs, malloc, free 这样的标准函数可以直接用。如果是第三方库,还需要在 build.rs 中配置链接参数。 ...