C との相互運用性
Rust は、C の呼び出し規則によるオブジェクト ファイルのリンクを完全にサポートしています。同様に、Rust 関数をエクスポートして C から呼び出すことができます。
これは手動で行うこともできます。
unsafe extern "C" {
safe fn abs(x: i32) -> i32;
}
fn main() {
let x = -42;
let abs_x = abs(x);
println!("{x}, {abs_x}");
}
We already saw this in the Safe FFI Wrapper exercise.
これは、ターゲット プラットフォームを完全に理解していることを前提としています。本番環境での使用推奨されません。
次に、より良い選択肢を見ていきます。