C との相互運用性
Rust は、C の呼び出し規約を持つオブジェクトファイルとのリンクを完全にサポートしています。 同様に、Rust の関数をエクスポートし、C から呼び出すこともできます。
望むなら手作業で行うこともできます:
// 著作権 2022 Google LLC // SPDX-License-Identifier: Apache-2.0 unsafe extern "C" { safe fn abs(x: i32) -> i32; } fn main() { let x = -42; let abs_x = abs(x); println!("{x}, {abs_x}"); }
これはすでに Safe FFI Wrapper の演習で見ました。
これは、対象プラットフォームを完全に把握していることを前提としています。本番環境での 使用は推奨されません。
次に、より良い方法を見ていきます。