do while false 技巧揭密

2021-06-22 10:35:47 字數 636 閱讀 6420

do

dwsize = msg_hdr_len ;

dwstatus = gu_recvall(

sessionsocket ,

szprotobuffer,

dwsize );if

( 0 !

= dwstatus )

if( pmsghdr-

>dwacknumber !

= dwacknumber )

if( pmsghdr-

>dwretstatus !

= 0 )

dwsize = pmsghdr-

>dwpacketlength ;

dwstatus = gu_recvall(

sessionsocket ,

szprotobuffer ,

dwsize );if

( 0 =

= dwstatus )

}while

(false);

開始覺得不是多此一舉嗎?仔細分析了以後,才發現很妙,因為在不同的條件判斷中就可以按需break;從而達到最終執行到最後乙個返回語句。而以前的實現都是以goto來實現的。

0 給主人留下些什麼吧!~~

do while false 實用技巧

今天看專案原始碼的時候發現有些地方用了do while false 的用法,查了下發現這樣確實有些優點,mark下。1.最重要的優點,用在略微複雜的巨集定義中。define ab1 a b x,下面語句b不能被執行 if cond ab1 define ab2 x,下面語句編譯出錯 if cond ...

do while false 結構的妙用

今天看原始碼的時候,發現某個框架的原始碼裡面經常出現如下片段 do while false 我對於do while false 結構的使用,在此之前無非兩種,第一種是基本用法,也就是把它當成迴圈結構使用,和for while 沒太大區別 還有一種用法是用在巨集定義中,如下所示 define larg...

vuecrud鉤子 Vue2實踐揭

vue2實踐揭秘 以vue2的實踐應用為根基,從實際示例入手,詳細講解vue2的基礎理論應用及高階元件開發,通過簡明易懂的例項 生動地讓讀者快速 全方位地掌握vue2的各種入門技巧以及一些在實際專案中的寶貴經驗。vue2實踐揭秘 除了全面 細緻地講述vue2的生態結構 實際程式設計技巧和一些從實踐中...