2016-05-11 7 views
0

私のCコードにはtcpsock.cとtcpsock.hファイルがあります。 tpcsock.cファイルインクルードにはtcpsock.hファイルがあります。このソケットコードは、connmgr.c(tcpsock.cを含む)で使用されます。私は、次のコードを持っているヘッダファイルでフィールドに不完全型のエラーがあります

struct tcpsock{ 
    long cookie; 
    int sd; 
    char * ip_addr; 
    int port; 
}; 

struct conn{ 
    struct tcpsock_t socket; 
    long last_active; 
}; 

:私は次のように定義されている2つの構造体を、持っているCファイルで 私はこれをコンパイルしようとすると

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; 
       ^

私はどこでも検索が、解決策を見つけることができなかったので、私はここに誰も私を助けることを願ってきました。 ありがとうございます!

+1

あなた'構造体tcpsockのtcpsock_t' typedefの場合、それは何を意味するのでしょうか? 'tcpsock_t'は必要なものです。 – user3078414

+0

'tcpsock_t'を' typedef'して、障害のあるメンバーを 'tcpsock_t socket;に変更してください。 –

答えて

7

typedef struct tcpsock tcpsock_t;tcpsock_tstruct tcpsockと定義する。したがって、あなたの構造体の定義は次のようになります。あなたが `構造体tcpsock_t`として変数を宣言するときに

struct conn{ 
    tcpsock_t socket; 
    long last_active; 
}; 
+0

ああ、もちろん..ありがとう! – Tibo

+0

@Tiboようこそ。私はあなたが解決したとしてこの質問をマークすることができると思う;-) – jboockmann