do{} while(0)的用處
1、可以作為goto的替代,
do
{
if(...) break;相當於直接goto到迴圈外的那個語句
...
}while(0);
2、可以作為巨集定義中的語句,契合程式設計師在每句程式碼後加分號結尾的習慣
#define FUN() \
do \
{ \
語句體
} \
while(0) \
相關推薦
do{} while(0)的用處
1、可以作為goto的替代, do { if(...) break;相當於直接goto到迴圈外的那個語句 ... }while(0); 2、可以作為巨集定義中的語句,契合程式設計師在每句程式碼後加分號結尾的習慣 #define FUN() \ do \ { \ 語
為什麽使用do{}while(0)?
cocos2d else cocos sni 語句 解決問題 問題: 替換 pan 近期學習Cocos2d-x,看到不少使用do{}while(0)的宏定義,如: #define CC_SAFE_DELETE(p) do { delete (p
C語言在linux內核中do while(0)妙用之法
pos turn jsb world div fprintf cpp efault code 為什麽說do while(0) 妙?由於它的確就是妙,並且在linux內核中實現是相當的妙,我們來看看內核中的相關代碼: #define db_error(fmt, ..
C語言中do...while(0)的妙用-避免goto
java ng- pop execute size 釋放資源 and var text 使用goto的優雅並避免結構的混亂 將要跳轉到的語句用do{…}while(0) 包起來就可以。 reference #defien N 10 bool
do{}while(0); 的幾個用途
作用 break goto ret mac fine dota efi include #include <stdio.h> #define NULLMACRO do{}while(0); #define DOTASK() do{
核心程式碼巨集中 do{...}while(0) 的作用
在核心空間非常有限的情況下,為什麼還要在某些巨集裡增加 do{...}while(0) 這種“沒用”的程式碼行呢? 帶引數的巨集定義的一般形式為:
do...while(0) 的妙用
在 C++ 中,有三種類型的迴圈語句:for、 while、 和 do…while, 但是在一般應用中作迴圈時, 我們可能用 for 和 while 要多一些,do…while 相對不受重視。 但是,最近在讀專案程式碼時,卻發現了 do…while 的一些十分聰明的用法,不是用來做迴
do...while(0)的使用
為什麼需要使用do...whie(0),我們都知道do{...}while(condition)可以表示迴圈,但我們會遇見一些巨集定義中可以不用迴圈的地方,使用到了do{...}while(0)。 ex: #define foo(x) do{\ stat
C/C++中do{...}while(0)的作用
如果 就是 strong 意思 語法 如同 ++ 期望 lse 一:do{...}while(0)在定義宏時的作用。其實就是能夠讓你定義的宏按照你期望的方式執行而沒有語法或邏輯錯誤,無論這個宏是在if判斷裏面使用還是放在其他別的地方使用。 1.在後面要加分號,使調用如同
這種程式碼結構如何組織?goto or do…while(0)?
灰常感謝各位達人昨天的熱心回帖,讓我受益匪淺。我仰望夜空,群星點點,就如各位的點睛之語,在無盡的蒼穹閃耀。這讓我深深地意識到,在這裡,不僅可以分享成果,也可以分享困惑、分享寂寞。(開場白到此結束~) 在平常的程式設計中,我發現很容易遇到這種結構: (1號方案) BOOL foo(){ BOO
do...while(0)
一、巨集定義,實現區域性作用域 貼上一段程式碼: void print() { cout<<"print: "<<endl; } void send() { cout <<"send: "<<endl; } #define LO
do {...} while (0) 的用途彙總(歡迎補充)
在一些Linux核心和其它的開原始碼中,我們經常看到像下面這樣的程式碼: do{ ... }while(0) 該程式碼片段並非迴圈,這樣想想似乎使用do…while沒有任何意義,那麼為什麼還要使用它呢? 實際上,do{...}while(0)的用途並不僅僅是優化你的
【轉】 do {...} while (0) 在巨集定義中的作用
如果你是一名C程式設計師,你肯定很熟悉巨集,它們非常強大,如果正確使用可以讓你的工作事半功倍。然而,如果你在定義巨集時很隨意沒有認真檢查,那麼它們可能使你發狂,浪費N多時間。在很多的C程式中,你可能會看到許多看起來不是那麼直接的較特殊的巨集定義。下面就是一個例子:
巨集do{}while(0)
#define MACRO_NAME(para) do{macro content}while(0) 的格式,總結了以下幾個原因: 1,空的巨集定義避免warning: #define foo() do{}while(0) 2,存在一個獨立的block,可以用來進
do{...}while(0)的意義和用法
linux核心和其他一些開源的程式碼中,經常會遇到這樣的程式碼: do{ ... }while(0) 這樣的程式碼一看就不是一個迴圈,do..while表面上在這裡一點意義都沒有,那麼為什麼要這麼用呢? 實際上,do{...}while(0)的作用遠大於美化你的程
do...while(0)在巨集定義中的巧妙用法【轉】
大家都知道,do…while(condition)可以表示迴圈,但你有沒有遇到在一些巨集定義中可以不用迴圈的地方,也用到了 do…while.比如: #define DELETE_POINTER(p) \ do \ { \ if
do{}while(0)
代碼 能夠 出錯 性能 cti rac 編譯錯誤 ... 進行 有時會在源碼中或在寫代碼時在宏定義中用到do...while(0). 采用這種方式進行宏定義, 主要是為了防止出現以下錯誤 : do{}while(0) 空的宏定義避免出現warnning. #define
do...while(0)的妙用
轉自 http://www.cnblogs.com/flying_bat/archive/2008/01/18/1044693.html 在C++中,有三種類型的迴圈語句:for, while, 和do...while, 但是在一般應用中作迴圈時, 我們可能用for和w
do{...}while(0)的妙用
在C++中,有三種類型的迴圈語句:for, while, 和do...while, 但是在一般應用中作迴圈時, 我們可能用for和while要多一些,do...while相對不受重視。 但是,最近在讀我們專案的程式碼時,卻發現了do...while的一些十分聰明的用法,不是用來做迴圈,而是用作其他來提
linux do{} while(0)
back 使用 style inux while 情況 {} color 但是 do{}while(0) 在linux中,經常會看到do{}while(0)這樣的語句,許多人開始都會疑惑,認為do{}while(0)毫無意義,因為它只會執行一次,加不加do{}wh