什么退出:做

时间:2016-12-06 12:18:53

标签: c++

我正在阅读openThread的一些C ++代码,我从未编写过C ++,但我想知道exit:在底部附近做了什么,然后是return error;

拥有exit:而没有

有什么不同
ThreadError otGetParentInfo(otInstance *aInstance, otRouterInfo *aParentInfo)
{
    ThreadError error = kThreadError_None;
    Router *parent;

    VerifyOrExit(aParentInfo != NULL, error = kThreadError_InvalidArgs);

    parent = aInstance->mThreadNetif.GetMle().GetParent();
    memcpy(aParentInfo->mExtAddress.m8, parent->mMacAddr.m8, OT_EXT_ADDRESS_SIZE);
    aParentInfo->mRloc16 = parent->mValid.mRloc16;

exit:
    return error;
}

3 个答案:

答案 0 :(得分:4)

这是GOTO声明的标志。

它允许程序从(几乎)代码中的任何一点跳转到此标记。这通常用于硬件编程或嵌入式编程,如果不能使用大量break语句或类似情况而无法从深层嵌套结构返回。

答案 1 :(得分:3)

exit:

它与goto一起使用的标签。这个goto lable通常用于在发生某些错误情况时跳出代码块。

答案 2 :(得分:3)

其他答案是正确的,但并未明确标签可以是任何不是保留关键字的单词。 exit就是这样一个名字。

另一方面,在您的示例中,没有相应的goto exit;正常程序执行只是绕过标签,它与功能无关。