do{ }while(0)使用的解釋
do{ }while(0)寫法的目的主要是為了程序基礎函數的健壯性和通用性,和一些代碼的靈活使用。
do{ }while(0)寫法會讓內部的代碼執行一次后退出,如果不使用這種寫法,會對那些如if語句后面不緊跟{}的程序員造成編譯錯誤,而對那些使用{}編程習慣的則無影響。
舉例:
#define SAFE_DELETE(p) do{ delete p; p = NULL} while(0) //1.使用 do{ }while(0)寫法
#define SAFE_DELETE(p) { delete p; p = NULL} //2.使用{}寫法
#define SAFE_DELETE(p) delete p; p = NULL //3.什么都不使用的寫法
if(NULL != p) SAFE_DELETE(p) //1.無問題 2.無問題 3.有問題,else前面有2條語句,編譯失敗
else ...do sth...
if(NULL != p) SAFE_DELETE(p); //1.無問題 2.有問題,括號后面跟;編譯失敗 3.有問題,else前面有2條 else ...do sth... //語句,編譯失敗
if(NULL != p) {SAFE_DELETE(p)} //1.無問題 2.無問題 3.無問題
else ...do sth...
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。