多个return返回的代码不易于管理,还可能造成内存泄漏,死锁,句柄泄漏等灾难性的问题。goto语句更是会造成诸多问题。
所以对于编写嵌套较多,分支较多的逻辑函数,可以用do while(false)代替。
这里用了do..while,可根本不是为了循环,而是为了使用它的break功能。每当有操作不成功,就直接用break跳出循环。所以循环条件总是一个“永假” false。
在每个break条件前,将return的值赋值给一个变量ret,最后返回ret.逻辑清晰,不易出错。
多个return返回的代码不易于管理,还可能造成内存泄漏,死锁,句柄泄漏等灾难性的问题。goto语句更是会造成诸多问题。
所以对于编写嵌套较多,分支较多的逻辑函数,可以用do while(false)代替。
这里用了do..while,可根本不是为了循环,而是为了使用它的break功能。每当有操作不成功,就直接用break跳出循环。所以循环条件总是一个“永假” false。
在每个break条件前,将return的值赋值给一个变量ret,最后返回ret.逻辑清晰,不易出错。