【发布时间】:2020-06-24 06:46:27
【问题描述】:
我在 Rust 中为 C 中的一个库提供了绑定,但它们并不完整。
在 C 代码中,我定义了一个简化的宏,如下所示:
#define MY_MACROS1(PTR) (((my_struct1 *) (PTR))->field1.field2 >> 2)
我需要在 Rust 中实现同样的目标。
我有一个 my_struct1 的 Rust 绑定定义。我有一个指针
let my_ptr1: usize = unsafe { get_a_pointer_from_c(); }
如何将指针 my_ptr1 转换为 my_struct1 或更确切地说是 my_struct1 *?
Rust 绑定到 get_a_pointer_from_c() 返回一个 usize 类型的指针,注意。
【问题讨论】:
-
为什么不在 C 上做一个函数来返回看起来像 int 的值?
-
是什么让您无法按照所示的方式进行操作?
-
我认为 ` \ ` 是错字或复制粘贴错误,或者是与换行空白有关的意外。