如何定义extern类型?

时间:2014-09-08 13:09:34

标签: rust ffi

我有一些带有结构指针参数的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等外部结构?

1 个答案:

答案 0 :(得分:2)

惯例是对不透明的FFI类型使用空枚举,即:

enum SomeStruct {}

有时也使用像struct SomeStruct;这样的空结构。