语法错误"=="
Syntax Error "=="
这是我正在处理的游戏引擎代码的一部分。 当我构建/调试代码时,它因编译器错误而停止:"Camera.cpp(70):错误 C2059:语法错误:"==",第 70 行是
if ( near == far )
行。它也发生在第 75 行:
(if near == NULL || far == NULL)
bool Camera::SetClippingPlanes( float near, float far )
{
if (near == far) //Line 70(First Error)
{
MessageBox(NULL, L"ERROR: The far and near clipping planes cannot be equal!", L"Error", MB_OK | MB_ICONERROR);
return false;
}
else
{
if (near == NULL || far == NULL) //Line 75(Second Error)
{
MessageBox(NULL, L"ERROR: Near and/or Far clipping planes are null!", L"Error", MB_OK | MB_ICONERROR);
return false;
}
else
{
nearPane = near;
farPane = far;
return true;
}
}
}
我还有其他函数以相同的方式使用 == 运算符,但它们没有收到错误。 如果您有任何建议,谢谢...
很多年前(在一个遥远的星系中),near
和far
是关键词。看起来您的编译器仍然认为他们是 - 它可能试图提供帮助。
您要么需要选择不同的名称,要么弄清楚如何关闭这个特定的向后兼容的"功能"。
您正在为 Windows 和 Windows 编码,如果您包含 windows.h 或包含它的文件(当然也包括它,因为您调用了 MessageBox),那么far
和near
都是在 windef.h
中定义的,您不能将它们用作变量名
将浮点数与 == 进行比较也很危险。不可能以绝对精度表示每个数字。我相信主要的 IEEE 浮动实现只对 6 个重要的地方很好。您将找到两种方法,或者计算应该相同的数字将减少 0.000001 或更少,因此不会相等。
相关文章:
- 为什么包含windows.h会产生语法错误,从而阻止类的实例化?(C2146,C2065)
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 为什么我会收到错误 C2143 语法错误:缺少"*"之前的';'?
- 奇怪的代码抛出编译错误模板< J,int aSize=10> C2143:语法错误:在"<"之前缺少";"
- "错误 C0000:语法错误,令牌"<EOF>"处出现意外$end,并且不确定
- 我该怎么做才能摆脱使用命名空间时的语法错误?
- C++语法头文件错误
- 如何摆脱错误c2061;语法错误 cout?
- 语法错误:D3DX10Core 中的标识符'TEXTMETRICA'
- 错误 C2146:语法错误:标识符"A1"之前缺少","
- main.cpp(11):错误 C2059:语法错误:"字符串"
- 我想获取点的属性,它报告错误 C3867:"point::output_x":非标准语法;使用"&"创建指向成员的指针
- RedisGraph 语法错误在偏移量 8 靠近"创建"
- 如何修复此 FSM C++语法错误 C3867
- 函数错误 C2059:语法错误:'>'不起作用
- 为什么在main()之前断言会导致语法错误"error: expected ')' before numeric constant"?
- system() 返回错误语法错误:"("意外
- C++图形初始化错误(语法或丢失文件缺陷?
- 获取0:1(1):错误:语法错误,尝试编译着色器时意外$end
- Visual Studio错误:语法错误:标识符