【问题标题】:C2143 C2059 errors with terniary operator三元运算符的 C2143 C2059 错误
【发布时间】:2011-07-22 08:46:05
【问题描述】:
bool xHasReached(double tX, double dstX, bool incX) {
return incX ? tX > (dstX - (double)EPSILON) : tX < (dstX + (double)EPSILON);}

所以我收到 C2143(缺少令牌)和 C2059(语法错误)错误。我试过不用分号,但仍然报同样的错误。

我已将错误追踪到 EPSILON #define。

【问题讨论】:

  • 欢迎来到 Stack Overflow!有几件事可以帮助我们回答这个问题:显示 C2143 和 C2059 的完整信息,这样我们就不必在其他地方查找了。还请显示 EPSILON #define。要将这些内容添加到问题中,请使用标签下的编辑链接。

标签: visual-c++ c-preprocessor ternary-operator


【解决方案1】:

我敢打赌你有#define EPSILON 0.0001 ;

应该是const double EPSILON = 0.00001;。宏更难调试,它们在使用时往往会导致错误,而不是在定义时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 2018-04-11
    • 2017-05-12
    • 2012-11-19
    • 1970-01-01
    • 2012-10-01
    • 2021-10-30
    • 2017-09-05
    相关资源
    最近更新 更多