Linux下array type has incomplete element type,怎么解决
各位大侠,我定义了一个结构体
struct wt_sock_fun_st {
uint8 flag; // 对应enum CONN_SOCK_FLAG
uint8 authed; // 对应enum CONN_AUTH_FLAG
uint16 array_id; // 在 g_conn_sock_arr 数组中的索引
uint16 order; // 表示交互顺序
uint16 pad2;
SOCKET sock;
SockRecvFun recv_fun; // 主服务器、认证服务器,有不同的接收处理函数
uint32 router_seq; // 路由器产生的随机数,用于加密、预防copy 攻击
uint32 srv_seq; // 服务器产生的随机数,用于加密、预防copy 攻击
};
其中SockRecvFun的定义是
typedef int (*SockRecvFun)(struct wt_sock_fun_st *wt_sock_fun_st);
而后我定义:
int wt_base_srv_recv_fun(struct wt_sock_fun_st *wt_sock_fun_st);
int wt_auth_srv_recv_fun(struct wt_sock_fun_st *wt_sock_fun_st);
在程序中,我源文件中定义:struct wt_sock_fun_st g_conn_sock_arr[MAX_CONN_SOCK];
在头文件中声明:extern struct wt_sock_fun_st g_conn_sock_arr[MAX_CONN_SOCK];
这里在Linux下会出现array type has incomplete element type错误
在其他地方可以会用上wt_sock_fun_st->recv_fun = wt_base_srv_recv_fun;
请各位大侠帮忙解决这个问题吧?