原文:do{...}while(0)的妙用

在學習第一門編程語言時,就已經介紹了順序分支 條件分支 循環分支。比如循環分支有for while do while語句。在隨后的學校及工作中,如果手工循環一般使用for while,很少使用do while,感覺用處不大,但現在看來,do while大有用途。 . 幫助定義復雜的宏以避免錯誤 舉例來說,假設你需要定義這樣一個宏: 這個宏的本意是,當調用DOSOMETHING 時,函數foo 和f ...

2014-04-19 01:05 10 6089 推薦指數:

查看詳情

C語言中do...while(0)的妙用

在linux內核代碼中,經常看到do...while(0)的宏,do...while(0)有很多作用,下面舉出幾個: 1、避免goto語句: 通常,如果一個函數開始要分配一些資源,然后如果在中途遇到錯誤則要退出函數,當然,退出前要釋放資源,我們的代碼 ...

Fri Oct 25 21:51:00 CST 2013 12 8429
whiledo while區別

do-while循環與while循環的不同在於:它先執行循環中的語句,然后再判斷表達式是否為真, 如果為真則繼續循環;如果為假, 則終止循環。因此, do-while循環至少要執行一次循環語句。 簡單來講就是說while循環是先循環后判斷 。 ...

Tue Oct 06 22:06:00 CST 2020 0 978
whiledo while循環的區別

int a; scanf_s("%d",&a); while(a>0) {   //do something; } while循環先要判斷條件是否成立,如果不成立,那么就直接越過循環,所以while循環執行的次數最少是0次。 do while 循環執行的次數 ...

Sun Oct 14 00:54:00 CST 2018 0 761
python實現dowhile

python中沒有dowhile語法,但是python編程中遇到需要使用dowhile來實現編程要怎么寫呢? 下面是我從其它博主那里看到的方法,做個筆記,以防遺忘。 要實現的例子: 代碼如下: 1、 a = 0 a = input() while ...

Fri Dec 25 18:06:00 CST 2020 0 428
linux do{} while(0)

  do{}while(0)   在linux中,經常會看到do{}while(0)這樣的語句,許多人開始都會疑惑,認為do{}while(0)毫無意義,因為它只會執行一次,加不加do{}while(0)效果是一樣的,其實do{}while(0) 的用法主要在於宏定義中。   這里用一個簡單 ...

Mon Feb 25 03:22:00 CST 2019 0 602
do while(0)的作用

閱讀Mitsuba的代碼的時候,發現了一個有意思的地方: 定義了一個Log的宏函數,使用了do{...} while(0)的語法,這里的while中的條件是常量0,上面的代碼永遠只執行一遍。 感覺是多此一舉,做法令人費解。上stack overflow查了下資料。說法 ...

Wed Jun 03 00:03:00 CST 2015 1 4206
使用do{ } while(0)的好處

這樣的代碼一看就不是一個循環,do..while表面上在這里一點意義都沒有,那么為什么要這么用呢? 實際上,do{...}while(0)的作用遠大於美化你的代碼。查了些資料,總結起來這樣寫主要有以下幾點好處: 1、輔助定義復雜的宏,避免引用的時候出錯: 舉例來說,假設你需要 ...

Thu Sep 26 23:16:00 CST 2019 0 1095
為什么要用do-while(0)?

今天讀代碼時候,看到這樣的代碼。。 #define MG_SET_PTRPTR(_ptr, _v) \ do { \ if (_ptr) *(_ptr) = _v; \ } while (0) 1、對於帶有if 語句的宏,無論是內核還是開源代碼,都是用到了do while ...

Thu May 17 01:14:00 CST 2018 0 1211
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM