巧用do while 0 ,實現goto的功能

2021-09-12 12:10:17 字數 301 閱讀 5945

今天看公司demo**看到很多地方用到乙個空迴圈do{}while(0)。初看覺得這樣寫沒有任何意義,do花括號內的**執行一次迴圈就退出了,和直接去掉迴圈沒什麼區別吧。通過認真觀察發現這其實是個很有用的程式設計技巧。先來看一段**:

int a=1,b=0;

dowhile(0);

看上面的**發現,用這樣乙個迴圈其實是為了能在條件不滿足時直接跳出迴圈,不執行後面的**。這個功能可以用goto語句實現,但是這個技巧也是很有用的。一般在do{}內會有很多判斷,不滿足就直接使用break跳轉到while(0)後面。

巨集語句 do while 0

有時程式中重複出現某幾條語句,為了保證程式dry don t repeat yourself 需要將這幾條語句合併為一條語句.在c 中可以選擇用 inline,c語言沒有這個特性,但是可以用巨集實現.正確答案是用dowhile 0 實現,下面推理下為什麼這種方法最好吧.思路一 直接寫在一起 比如要將...

do while 0 用法分析

在許多c c 巨集定義中我們會看到巨集 包含在do while迴圈或者if else語句裡,例如 define m x do while 0 define m x if 1 else 那麼這種用法有什麼好處呢?這種用法最大的好處是增強巨集定義 的魯棒性,儘管使得程式稍稍變得更加複雜。為了加快專案開發...

使用do while 0 的好處

看到乙個比較好的帖子,給大家分享下!cpp view plain copy define lfw x,y do while 0 cpp view plain copy api while 0 1.替代 實現區域性作用域.在一些c的實現裡也可以用.2.避免使用goto,用break做跳出.當你執行一段...