繁体   English   中英

退出什么:做

[英]What does exit: do

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

有一个exit:有什么区别exit:没有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;
}

这是GOTO语句的标记。

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

exit:

该标签与goto一起使用。 当某些错误情况发生时,通常使用goto lable从代码块中跳出。

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

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

暂无
暂无

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

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