2

次の関数宣言を含むヘッダーファイルがあります。

extern  getEmailDetailsResult * getemaildetails_5(getEmailDetailsInput *, CLIENT *);

私の.Cファイルでは、関数の定義は次のとおりです。

getEmailDetailsResult* getemaildetails_5(inputParams, rqstp)
    getEmailDetailsInput *inputParams;
    struct svc_req *rqstp;

プログラムをUnixでコンパイルすると、コンパイルは成功します。しかし、Linux(gcc 4.1.2)では、次のエラーが発生します"error: argument ârqstpâ doesnât match prototype"。関数プロトタイプを持つ.hファイルは、コンパイル中にOSによって生成されます。Linuxでのエラーの原因は何でしょうか?

4

2 に答える 2

1

struct svc_req *ポインターがポインターと同等ではないようCLIENT *です。

于 2012-05-21T07:46:10.127 に答える
0

2 つのポインタがstruct svc_req *ありCLIENT *ます。2 つのポインターがそれぞれ異なる型を指しているため、このエラーが発生しています。これは astruct svc_reqと同じ種類のものではないCLIENTため、2 つのポインタには互換性がありません。

于 2012-05-21T17:34:20.847 に答える