我正在MSVC 2012中编译以下内容

#define DOUB (i) ((i)+(i))

int _tmain(int argc, _TCHAR* argv[])
{
    for (int i(0); i <= 10; i++)
        std::cout << "twice" << i << "is" << DOUB(i) << '\n'; // 22

    system("PAUSE");
    return 0;
}

并在第22行得到以下错误:错误C2064:term不求值为带有1个参数的函数

有人可以帮忙吗?

最佳答案

预处理器宏定义关心空格:不要在宏名称和类似函数的宏的括号之间保留空格:

#define DOUB(i) ((i)+(i))
//      ^^^^^^^

08-17 03:36