繁体   English   中英

语法错误“==”

[英]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;
        }
    }
}

我有其他函数以相同的方式使用==运算符,但它们不会收到错误。 如果您有任何建议,谢谢...

很多年以前(在一个星系很远很远), nearfar是关键字。 看起来您的编译器仍然认为它们是 - 它可能试图提供帮助。

您需要选择不同的名称,或者弄清楚如何关闭这个特定的向后兼容“功能”。

如果你包含windows.h或包含它的文件(当然你包括它,因为你有一个MessageBox的调用),你正在编写windows和Windows编码,那么farnear都是在windef.h定义的你可以' t将它们用作变量名称

将浮点数与==进行比较也很危险。 它不可能以绝对精度表示每个数字。 我相信主要的ieee浮动实现仅适用于6个重要位置。 您可以找到两种方法或计算出相同数字的数量将超出0.000001或更少,因此不会相等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM