Rust与C的互操作性,是Rust中最令人难以置信的事情之一。C可以安全地调用 Rust代码,且Rust可以使用具有C接口的知名库的能力,是整个行业快速采用 Rust的关键原因。
它还允许我们通过为rust crate实现C接口来更好地分发代码,因此它可以被任何能够调用C语言编写的软件使用。
1.将Rust字符串传递给C的5种方法(查看图片):
(1)提供创建和删除的方法;
(2)分配缓冲区并复制数据;
(3)将内存分配器方法传递给Rust;
(4)从Rust调用glibc;
(5)借用Rust string;
2.将C字符串传递给Rust的2种方法(查看图片):
(1)将其转换为&str,不复制数据;
(2)复制数据并接收string;