do while false 實用技巧

2021-09-08 19:33:39 字數 604 閱讀 3136

今天看專案原始碼的時候發現有些地方用了do{} while(false)的用法,查了下發現這樣確實有些優點,mark下。

1.最重要的優點,用在略微複雜的巨集定義中。

#define ab1    a; b;     //

x, 下面語句b不能被執行: if (cond) ab1;

#define ab2 //

x, 下面語句編譯出錯:if (cond) ab2; else ...;

#define ab3 a, b //

x, 有運算子優先順序問題

#define ab4 do while (0)

2.當你執行一段**到一半,想跳過剩下的一半的時候,如果你正處於do while迴圈中,則能用break達到這個目的。如下偽**:

int

foo()

避免goto語句的話,實用do while(false)就能很好的解決。

int

foo()

while(0

); free(ptr);

return0;

}

do while false 技巧揭密

do dwsize msg hdr len dwstatus gu recvall sessionsocket szprotobuffer,dwsize if 0 dwstatus if pmsghdr dwacknumber dwacknumber if pmsghdr dwretstatus 0...

do while false 結構的妙用

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

iOS開發之NSString的幾條實用技巧

常量字串 nsstring string i am an iosdevtip 常用建立方法 nsstring string nsstring alloc init string i am an iosdevtip too 用initwithstring建立字串 nsstring string nss...