我包含iomanip时出错

时间:2012-07-06 10:08:32

标签: c++

当我注意到一些我不理解的东西时,我才开始编写程序。 我已经定义了一个名为" time"的结构。 当我尝试定义名为" time1"的结构变量时,它会发出错误:"期望&#39 ;;'"。 但当我删除头文件" iomanip"错误消失了!当我再次包含它时,错误会再次出现。为什么会这样?

2 个答案:

答案 0 :(得分:4)

让我们试试这段代码:

#include <iomanip>

struct time
{
    int a;
};

int main()
{
    time t1;
}

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

显然,<iomanip>包含<time.h>time.hfunction called time()。所以,基本上,只需将您的结构重命名为&#34; myTime&#34;或类似的东西。

答案 1 :(得分:0)

如果您不想重命名struct的名称,则可以将其更改为:

#include <iomanip>

struct time
{
    int a;
};

int main()
{
    struct time t1;
}