【发布时间】:2016-03-22 12:58:00
【问题描述】:
我的印象是绑定是您编写的中间层,因此您可以在以另一种语言编写的应用程序中使用以一种语言编写的库。看来 Rust 可能会call C with zero overhead
举个具体的例子,Vulkan 是一个 C API,但人们正在开发 Vulkan 的绑定(1、2、3)。
如果可以直接从 Rust 调用 C,为什么要创建绑定?我是不是误会了什么?
【问题讨论】:
-
以零运行时开销调用 C 并不意味着能够立即调用任何 C 函数。由于 Rust 不能自动导入 C 标头(与 Swift 不同),因此必须手动重写 Rust 中每个函数的声明,以使其可从 Rust 调用。
-
@Shepmaster 这里有一点。也许您可以将问题更改为“以 Vulkan 为例,Rust 中 C 绑定的目的是什么”...
-
@hamstergene 或使用 vk.xml 生成函数签名。
-
@hamstergene 嗯,这很简单。我猜在这种情况下,绑定根本不是一个中间层,而只是一个可以调用的声明。
标签: rust