标签:
所有学习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; }
标签:
原文地址:http://www.cnblogs.com/gaoxing/p/4281366.html