【C/C++】合理使用goto的若干场景

2018.02.22更新

即使如此,能不用还是不要用!!!

个人经验

goto在一些特定场景下合理使用,不仅不会导致代码可读性和可维护性变差,反而会更容易理解和维护。

场景一、多层循环跳出

while(A)
{
    ...
    while(B)
    {
        ...
        if(C)
        {
            ...
            goto outA;
        }
    }
}
 
outA:
    ...
场景二、统一处理并返回

int func()
{
    LockSomething();
    
    int res = 0;
 
    if(!func_step1())
    {
        goto func_return_fail;
    }
    
    if(!func_step2())
    {
        goto func_return_fail;
    }
    
    ...
    
func_return_normal:
    UnlockSomething();
    return res;
    
func_return_fail:
    res = -1;
    UnlockSomething();
    return res;
}

--------------------- 
作者:pplxlee 
来源:CSDN 
原文:https://blog.csdn.net/pplxlee/article/details/79121331 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/lengye7/article/details/88584286