我阅读和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;
}
它的标签,在这里http://en.cppreference.com/w/cpp/language/goto – Stargateur
DOC这看起来像一个goto标签。在任何情况下,在C++中使用goto都是非常令人沮丧的。另外,我真的不确定为什么当你从来没有用C++编程时,你为什么要阅读一些线程错误。 –
@MarošBeťko我们能不能进入这个...... goto有合理的好用途,就像打破嵌套循环或清理资源一样(当你不觉得像RAII-封装API暴露的每一种类型时)。 – user1610015