2

我收到parameter name omitted此代码错误

#include <GL3/gl3w.h>

void f(int near, int far) {

}

int main() {
    return 0;
}

这个问题我怀疑 gl3w 包含 WinDef.h 但我无法在源代码中找到它。这个问题的根源是什么,如何纠正?

4

2 回答 2

3

为确保问题不是来自WinDef.h,您可以尝试取消定义nearand far,看看它是否有效。

#undef far
#undef near

该错误似乎与此定义的行为相匹配。是near并且far被定义为空宏,您的参数将没有标识符。

于 2012-10-20T15:30:59.380 回答
2

near 和 far 用于指示指针的类型,很可能被定义为

#define near
#define far

这让你

void f(int , int )
{

}

这是 C 中的无效函数定义。(参数必须有名称)。要么取消定义它们 ( #undef) 要么更改参数名称。请注意,仅在函数定义中,这不是函数声明(即void foo(int, int);- 如在头文件中)中的问题。

具体来说,gl3w.h包含gl3.h包含windows.h

于 2012-10-20T15:30:42.233 回答