开发者

c typedef(ed) opaque pointer

开发者 https://www.devze.com 2023-02-16 21:33 出处:网络
I\'ve defined an opaque structure and related APIs like this: 开发者_StackOverflowtypedef struct foo foo;

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

精彩评论

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