您好,登錄后才能下訂單哦!
do{ }while(0)使用的解釋
do{ }while(0)寫法的目的主要是為了程序基礎(chǔ)函數(shù)的健壯性和通用性,和一些代碼的靈活使用。
do{ }while(0)寫法會(huì)讓內(nèi)部的代碼執(zhí)行一次后退出,如果不使用這種寫法,會(huì)對(duì)那些如if語句后面不緊跟{}的程序員造成編譯錯(cuò)誤,而對(duì)那些使用{}編程習(xí)慣的則無影響。
舉例:
#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.有問題,括號(hào)后面跟;編譯失敗 3.有問題,else前面有2條 else ...do sth... //語句,編譯失敗
if(NULL != p) {SAFE_DELETE(p)} //1.無問題 2.無問題 3.無問題
else ...do sth...
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。