Interoperabilidade com C
Rust tem suporte completo para vincular arquivos de objeto com uma convenção de chamada C. Da mesma forma, vocĂȘ pode exportar funçÔes Rust e chamĂĄ-las em C.
VocĂȘ pode fazer isso manualmente se quiser:
extern "C" {
fn abs(x: i32) -> i32;
}
fn main() {
let x = -42;
// SEGURANĂA: `abs` nĂŁo tem nenhum requisito de segurança.
let abs_x = unsafe { abs(x) };
println!("{x}, {abs_x}");
}
JĂĄ vimos isso no exercĂcio Safe FFI Wrapper .
Isso pressupÔe conhecimento total da plataforma de destino. Não recomendado para produção.
Veremos opçÔes melhores a seguir.