0

注意してください、これはクラスの課題のためです。つまり、学問的な誠実さなどです。

次のように定義された構造体があります。

typdef struct {
    int32_t r[8];
    Seq_T m;
    Seq_T lengths;
    int32_t ctr;
} UM_T;

クライアントを追加するまで、実装を含め、すべてが正常にコンパイルされていました。

#include "um.h"

int main(int argv, char* argc[]){                                                    
    FILE* file = fopen(argc[1]);                                                     
    UM_T* um = UM_new (file);                                                        
    run(um);                                                                         
};

コンパイラ(gcc)は次のように教えてくれます:

um.h:5: error: expected specifier-qualifier-list before 'int32_t'

int32_t構造体または私が定義したものである場合、どうすればよいかについてはある程度の考えがありますが、明らかにそうではありません。何か案は?

4

2 に答える 2

1
FILE* file = fopen(argc[1]);  

fopenfunction には 2 つのパラメーターがありますが、引数を 1 つだけ渡しています。

それで:

    run(um);
};

 ^

末尾の を削除する必要があります;

また、必ずstdio.hforfopenstdintfor int32_ttype を含めてください。

ついに:

int main(int argv, char* argc[])

あなたはおそらく次のことを意味していました:

int main(int argc, char *argv[])

混乱を避けるために。

もちろん、通話argv[1]の代わりに使用する必要があります。argc[1]fopen

于 2012-11-11T21:45:53.337 に答える
1
FILE *fopen(const char *path, const char *mode);

上記は の宣言fopen()です。2 つのパラメーターが必要ですが、1 つしか渡していません。

エラーメッセージが表示されます:

too few arguments to function ‘fopen’

また、使用している構造体にも含まれてint32_tいるため、または<sys/types.h>

于 2012-11-11T22:15:08.850 に答える