读书人

这个函数是永远return 0 吗?解决办法

发布时间: 2012-04-11 17:42:33 作者: rapoo

这个函数是永远return 0 吗?

C/C++ code
uint ShadeWidget::colorAt(int x){    generateShade();    QPolygonF pts = m_hoverPoints->points();    for (int i=1; i < pts.size(); ++i)     {        if (pts.at(i-1).x() <= x && pts.at(i).x() >= x)         {            QLineF l(pts.at(i-1), pts.at(i));            l.setLength(l.length() * ((x - l.x1()) / l.dx()));            return m_shade.pixel(qRound(qMin(l.x2(), (qreal(m_shade.width() - 1)))),                qRound(qMin(l.y2(), qreal(m_shade.height() - 1))));        }    }    return 0;}


这里面有两个 return , 但是第二个 return 0 每次执行函数都会运行到它, 那岂不是每次使用函数得到的返回值都是 0?

但是第一个return拿来干什么?

谢谢

[解决办法]
任何一个return语句都会使函数立刻返回,另一个return语句不会被运行
执行哪个return语句看你的程序流程而定,不可能执行两个
[解决办法]
这手够新的,先看看语法。
[解决办法]
遇到return 这个函数就结束了
[解决办法]
探讨

这手够新的,先看看语法。

[解决办法]
是递归么 结合堆栈学习 很容易感悟

读书人网 >C++

热点推荐