【发布时间】:2016-08-02 02:37:36
【问题描述】:
我有两个文件(每个文件都有 .h 和 .c)。我在其中一个头文件中定义了以下结构:
typedef struct Client{
int fd;
struct in_addr ipaddr;
struct Player * p;
struct Client * next;
}Client;
我尝试了许多不同的 typedef 和 struct 建议组合,但我仍然收到error: redefinition of ‘struct client’
我开始认为这与两个头文件相互包含的事实有关。
我是否正确地创建了这个结构?在相互包含头文件时,我应该遵循一些基本规则吗?
【问题讨论】:
-
我认为您的问题与包含指向自身的指针的结构无关。
-
这个问题的问题是你发布的代码不会产生那个错误。需要minimal, complete, and verifiable example。
-
我最好的猜测是你要找的是header guards
-
您向我们展示的代码is correct。因此,问题出在您没有向我们展示的代码中。请将您的程序缩减为实际显示错误的最小完整程序。请参阅minimal reproducible example 了解更多信息。