gpt4 book ai didi

c typedef(ed) 不透明指针

转载 作者:太空狗 更新时间:2023-10-29 16:33:52 26 4
gpt4 key购买 nike

我定义了一个不透明的结构和相关的 API,如下所示:

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

我无法在我的 c 文件中定义结构。给出重定义错误。

typedef struct foo {
int implementation;
}foo;

我可以在没有 typedef 的情况下在 c 文件中使用 foo,但我想要 typedef(即直接将其用作 foo*)。有办法吗?

最佳答案

您的 header 中已经有了 typedef,因此请在实现中包含它并在没有 typedef 的情况下定义 struct foo

foo.h:

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

foo.c:

#include <foo.h>

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

关于c typedef(ed) 不透明指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5299261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com