开发者

c typedef(ed) opaque pointer

I've defined an opaque structure and related APIs like this:

开发者_StackOverflowtypedef struct foo foo;
foo *create_foo(...);
delete_foo(foo *f);

I am not able to define the structure in my c file. Gives redefinition error.

typedef struct foo {
   int implementation;
}foo;

I am able to use foo in c file without typedef but I want the typedef (i.e. use it directly as foo*). Is there a way?


You already have the typedef in your header, so include that and define struct foo in the implementation without the typedef.

foo.h:

typedef struct foo foo;
foo *create_foo(...);
delete_foo(foo *f);

foo.c:

#include <foo.h>

struct foo { int implementation; };
/* etc. */
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜