如何将指针传递给具有私有定义的结构,而不使用struct
添加指针类型?
例如,这有效:
typedef struct Handle {
Ino ino;
} Handle;
bool handle_open(Handle **);
但是,如果我将结构定义移动到源文件中,则其他源文件将被强制使用struct Handle *
,而不是Handle *
。
答案 0 :(得分:5)
你可以typedef struct Handle Handle;
。在这种情况下,Handle
是不完整的类型(就像struct Handle
)。
答案 1 :(得分:2)
这应该在标题中正常:
struct _Handle;
typedef struct _Handle Handle;
然后,您可以将_Handle
的实际定义放在实际操作结构的文件的主体中。
答案 2 :(得分:0)
如果我将struct定义移动到源文件中,其他源文件将被强制使用struct Handle *,而不是Handle *
然后typedef
指针,而不是(或除了)结构。