我正在阅读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;
}
答案 0 :(得分:4)
这是GOTO声明的标志。
它允许程序从(几乎)代码中的任何一点跳转到此标记。这通常用于硬件编程或嵌入式编程,如果不能使用大量break
语句或类似情况而无法从深层嵌套结构返回。
答案 1 :(得分:3)
exit:
它与goto
一起使用的标签。这个goto
lable
通常用于在发生某些错误情况时跳出代码块。
答案 2 :(得分:3)
其他答案是正确的,但并未明确标签可以是任何不是保留关键字的单词。 exit
就是这样一个名字。
另一方面,在您的示例中,没有相应的goto exit;
正常程序执行只是绕过标签,它与功能无关。