第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

下面的兩個(gè)宏應(yīng)定義應(yīng)該如何理解?

下面的兩個(gè)宏應(yīng)定義應(yīng)該如何理解?

C++
搖曳的薔薇 2022-05-31 19:15:38
[ol][*]#define FREEP(p) do { if (p) free(p); } while (0)[/ol][ol][*]#define DELETEP(p) do { if (p) delete(p); } while (0)[/ol]上面的兩個(gè)宏應(yīng)定義如何理解?while 循環(huán)的條件假,在do { } while (循環(huán)條件),能保證循環(huán)執(zhí)行一次,但為什么要這樣寫代碼呢?
查看完整描述

2 回答

?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

你的疑問(wèn)應(yīng)該是這句吧
#define FREEP(p) do { if (p) free(p); } 為什么定義個(gè)宏還需要用到個(gè)do-while。這個(gè)看著好像有點(diǎn)多余,其實(shí)這只是一種寫法而已,不需要太糾結(jié),它沒有特殊的意義,具體的意義是要體現(xiàn)在程序的上下文中的.你也可以不加do-while的直接寫個(gè)單純語(yǔ)句而已,主要你的宏在展開時(shí)候還保留你原先定于該宏的含義就可以了

查看完整回答
反對(duì) 回復(fù) 2022-06-06
?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

應(yīng)該是為了避免忘掉寫分號(hào)(語(yǔ)句結(jié)束符)導(dǎo)致的錯(cuò)誤。比如:if(c1)FREEP(p);? ?? ?? ? //如果這個(gè)分束忘掉了,不能編譯過(guò)去else//do something另外,這種寫法,編譯器生成的代碼和do語(yǔ)句塊里的代碼應(yīng)該是一樣的,不會(huì)有效率上的損失。

查看完整回答
反對(duì) 回復(fù) 2022-06-06
  • 2 回答
  • 0 關(guān)注
  • 167 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)