parameter name omitted
このコードでエラーが発生します
#include <GL3/gl3w.h>
void f(int near, int far) {
}
int main() {
return 0;
}
この質問から、 gl3wにWinDef.hが含まれているのではないかと思いましたが、ソースに含まれていることがわかりません。この問題の原因は何ですか?どのように修正できますか?
parameter name omitted
このコードでエラーが発生します
#include <GL3/gl3w.h>
void f(int near, int far) {
}
int main() {
return 0;
}
この質問から、 gl3wにWinDef.hが含まれているのではないかと思いましたが、ソースに含まれていることがわかりません。この問題の原因は何ですか?どのように修正できますか?
問題がから来ていないことを確認するためにWinDef.h
、定義を解除して、それが機能するかどうかを確認することができnear
ますfar
。
#undef far
#undef near
エラーは、この定義の動作と一致しているようです。空のマクロとして定義されている場合、パラメータには識別子がnear
ありfar
ません。
nearおよびfarは、ポインターのタイプを示すために使用され、次のように定義される可能性があります。
#define near
#define far
それはあなたを残します
void f(int , int )
{
}
これはCでは無効な関数定義です(引数には名前が必要です)。それらの定義を解除するか(#undef
)、引数名を変更してください。これはvoid foo(int, int);
、関数定義のみの関数宣言(つまり、ヘッダーファイルの場合のように)では問題にならないことに注意してください。
具体的には、gl3w.hにはwindows.hを含むgl3.hが含まれます