Взаємодія з C
Rust має повну підтримку зв’язування об’єктних файлів за допомогою угоди про виклики C. Так само ви можете експортувати функції Rust і викликати їх із C.
Ви можете зробити це вручну, якщо хочете:
extern "C" { fn abs(x: i32) -> i32; } fn main() { let x = -42; // SAFETY: `abs` doesn't have any safety requirements. let abs_x = unsafe { abs(x) }; println!("{x}, {abs_x}"); }
Ми вже бачили це у вправі Safe FFI Wrapper.
Це передбачає повне знання цільової платформи. Не рекомендується для використання.
Далі ми розглянемо кращі варіанти.