在我的C代码中,我有一个tcpsock.c和tcpsock.h文件。 tpcsock.c文件包含tcpsock.h文件。此套接字代码用于connmgr.c(包括tcpsock.c)。 在C文件中,我有两个结构,定义如下:
struct tcpsock{
long cookie;
int sd;
char * ip_addr;
int port;
};
struct conn{
struct tcpsock_t socket;
long last_active;
};
在头文件中,我有以下代码:
typedef struct tcpsock tcpsock_t;
typedef struct conn conn_t;
当我尝试编译时,我收到以下错误:
In file included from connmgr.c:12:0:
lib/tcpsock.c:78:22: error: field ‘socket’ has incomplete type
struct tcpsock_t socket;
^
我一直在各处搜索,但无法找到解决方案,所以我希望这里有人可以帮助我。 提前谢谢!
答案 0 :(得分:7)
typedef struct tcpsock tcpsock_t;
将tcpsock_t
定义为struct tcpsock
。因此,您的结构定义必须如下所示:
struct conn{
tcpsock_t socket;
long last_active;
};