当前位置: 代码迷 >> 驱动开发 >> 为何用 do while 来做跳转
  详细解决方案

为何用 do while 来做跳转

热度:24   发布时间:2016-04-28 10:52:31.0
为什么用 do while 来做跳转?
RT
MS 的驱动例子中,好多都是用类似如下方式 来做跳转:
C/C++ code
do{   ...   if (! 函数1)      break;   ...}while (false);

如果 函数1 返回false 就break ,程序跳转到 “while (false);”之后执行。

我的问题是 :为何不用 try ,或者说用 goto 等来做?
用 do while break 的优势好处是啥啊??

------解决方案--------------------
无论是面向结构编程,或者是面向对象编程,程序员都必须尽可能不使用goto语句。实现所谓无goto编程;
设想一下,如果到处使用goto语句,意味着程序到处都可能是分叉,到处都可能是程序入口,程序绝对乱套。
就本例而言,使用goto将存在的问题是:
看见goto,就需要查找goto的目的地---标号。看见标号,就需要查找可能存在的多处goto语句。
标号做为程序分支的入口,最易引起多义理解,应该避免。不要认为,只会从一处转来,实际上,可能从n处的goto跳转过来。
而break,很好理解,出口就在while()之后,没有多义性。
------解决方案--------------------
个人认为用while(0)的作用是提高代码的健壮性,不是循环,也明确的告诉读者,这个地方的代码只走这一次,而使用break,看楼主的代码里在函数执行后貌似还有逻辑,这应该是跟要实现的功能有关系了,可能那个条件判断的函数里面已经做了什么事情,如果正确返回那后面的事情就不用做了,仅供参考!
  相关解决方案