溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

深入理解php內(nèi)核閱讀1

發(fā)布時(shí)間:2020-06-21 08:57:19 來源:網(wǎng)絡(luò) 閱讀:229 作者:shsjshentao 欄目:web開發(fā)

 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...

向AI問一下細(xì)節(jié)

免責(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)容。

AI