我有一些带有结构指针参数的c函数。
extern "C" {
fn InitSomeStruct() -> *SomeStruct;
fn SomeFunction(v: *SomeStruct);
fn DestroySomeStruct(v: *SomeStruct);
}
fn main() {
unsafe {
let s = InitSomeStruct();
SomeFunction(s);
DestroySomeStruct(s);
}
}
SomeStruct的实现未知。 如何从rust代码声明和使用SomeStruct等外部结构?
答案 0 :(得分:2)
惯例是对不透明的FFI类型使用空枚举,即:
enum SomeStruct {}
有时也使用像struct SomeStruct;
这样的空结构。