使用“near”作为变量名时的编译器错误

时间:2014-04-03 20:55:42

标签: c++ compiler-errors

我的代码中出现了一个非常奇怪的错误。我用C ++创建了这个类:

class Tester{
    float f;
    Tester(float,float);
};

我实现了这样:

Tester::Tester(float near,float a){
    this->f=near/a;
}

我收到以下错误:

..\src\Tester.cpp: In constructor 'Tester::Tester(float, float)':
..\src\Tester.cpp:4:14: error: expected primary-expression before '/' token
  this->f=near/a;
              ^

当我将near重命名为其他内容时,错误消失了。这当然不是很重要,因为我可以重命名这个变量,但我很好奇你是否有人知道原因。

更新

原因是windef.h的存在。它由windows.h通过wglext.h包含在内。

1 个答案:

答案 0 :(得分:4)

在某些标题中,编译器似乎将near定义为宏。通常这个宏用于" near"指针。