0

我刚开始写程序,就发现了一些我不明白的地方。我已经定义了一个名为“时间”的结构。当我尝试定义一个名为“time1”的结构变量时,它会发出一个错误:“expected an ';'”。但是当我删除头文件“iomanip”时,错误消失了!当我再次包含它时,错误又回来了。为什么会这样?

4

2 回答 2

4

让我们试试这段代码:

#include <iomanip>

struct time
{
    int a;
};

int main()
{
    time t1;
}

这是错误,以及当我尝试编译它时我在 QtCreator 中收到的警告(我的编译器是 g++ 4.6.3)。编译器认为time这里不是语句,而是函数名:

显然,<iomanip>不知何故包含<time.h>,并且time.h有一个名为 time() 的函数。因此,基本上,只需将您的结构重命名为“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 回答