0

プログラムを書き始めたばかりで、わからないことに気づきました。「時間」という構造を定義しました。"time1" という構造体変数を定義しようとすると、"expected an ';'" というエラーが送信されます。しかし、ヘッダーファイル「iomanip」を削除すると、エラーが消えます! そして、もう一度含めると、エラーが返されます。なぜこれが起こるのですか?

4

2 に答える 2

4

このコードを試してみましょう:

#include <iomanip>

struct time
{
    int a;
};

int main()
{
    time t1;
}

ここにエラーと、これをコンパイルしようとすると QtCreator で表示される警告があります (mycompiler は g++ 4.6.3 です)。コンパイラはtime、これをステートメントではなく関数名と見なします。

どうやら、<iomanip>何らかの形で が含まれ<time.h>ており、 time()time.hという関数があります。したがって、基本的には、構造の名前を「myTime」などに変更するだけです。

于 2012-07-06T10:31:33.263 に答える
0

構造体の名前を変更したくない場合は、次のように変更できます。

#include <iomanip>

struct time
{
    int a;
};

int main()
{
    struct time t1;
}
于 2012-07-06T11:33:36.893 に答える