将指针传递给C中的私有结构?

Mat*_*ner 1 c gcc struct typedef forward-declaration

我如何传递指向具有私有定义的结构的指针,而不使用指针类型struct

例如,这有效:

typedef struct Handle {
    Ino ino;
} Handle;

bool handle_open(Handle **);
Run Code Online (Sandbox Code Playgroud)

但是如果我将struct定义移动到源文件中,则强制使用其他源文件struct Handle *,而不是Handle *.

lij*_*jie 5

你可以typedef struct Handle Handle;.在这种情况下,Handle是一个不完整的类型(就像struct Handle).