在我的C代码中有一个tcpsock.C和tcpsock.h文件。tpcsock.c文件包括tcpsock.h文件。此socketcode用于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;
                 ^

我到处找,但找不到解决办法,所以我希望这里的人能帮我。
提前谢谢!

最佳答案

typedef struct tcpsock tcpsock_t;tcpsock_t定义为struct tcpsock。因此,结构定义必须如下所示:

struct conn{
   tcpsock_t socket;
   long last_active;
};

关于c - 栏位类型错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37171979/

10-10 22:26