本篇是《手动绑定 C 库入门》的第二篇。了解第一篇后,我们知道在调用 C 库时,需要重新在 Rust 中对该 C 库中的数据类型和函数签名进行封装。这篇我们将实践涉及到诸如数组,结构体等类型时,如何进行手动绑定。
1. 数组示例
2. 结构体
2.1 repr
属性
2.2 结构体
该函数根据 format 中定义的格式化规则,格式化结构体 timeptr 表示的时间,并把它存储在 str 中。这个函数使用了指向 C 结构体 tm
的指针,该结构体也必须在 Rust 中重新声明,通过类型布局小节,我们知道可以使用repr
属性#[repr(C)]
来确保在 Rust 中,该结构体的内存布局与在 C 中相同。
2.3 Opaque 结构体
总结
本文分享自微信公众号 - Rust语言中文社区(rust-china)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。