所有学习c++的书籍都明确提出了,不要使用goto, 以免造成程序流程的混乱,使理解和调试程序都产生困难。

但是我们遇到这样一个场景怎么办:就是不管程序执行成功与否,都要执行一些资源释放语句,相当java中的finally语句。c++的中没有finally的支持,即使使用try catch,资源释放也需要写两次,执行成功一次,catch中一次。使用goto可以很优雅的实现了finally.

void fun()
{
    INT32 rc=OK;    
    rc=doSomeThing();
    check(rc);   //   if(rc!=OK) goto error;
    done:
      releaseSource(); //施放资源,done是一定要执行的语句快
        return rc;  
    error:
        goto done;
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2023-03-19
  • 2021-07-12
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-03
  • 2021-04-21
  • 2021-08-08
  • 2021-07-10
  • 2021-07-25
相关资源
相似解决方案