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

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

請(qǐng)教關(guān)于宏定義嵌套問題

請(qǐng)教關(guān)于宏定義嵌套問題

梵蒂岡之花 2019-04-14 08:08:35
請(qǐng)教關(guān)于宏定義嵌套問題
查看完整描述

4 回答

?
藍(lán)山帝景

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

#define WIDTH 80
#define LENGTH (WIDTH+40)
在第二個(gè)宏定義中,使用了前面定義過的宏名WIDTH。在編譯預(yù)處理時(shí),程序中所有的WIDTH都被80所替換,所有的LENGTH又被(80+40)替換。如果程序中出現(xiàn)了如下語句:
var=LENGTH*20;
經(jīng)過替換以后變?yōu)椋?br/>var=(80+40)*20;
但是如按以下方式定義:
#define WIDTH 80
#define LENGTH WIDTH+40
var=LENGTH*20;
則經(jīng)過編譯預(yù)處理后變成
var=80+40*20;
就是說,宏替換只是簡單地用定義的宏體去替換宏名而不進(jìn)行任何計(jì)算。因此,宏定義中若出現(xiàn)表達(dá)式時(shí),園括號(hào)的有無,效果明顯不同。為了保證定義在置換后仍保持正確的運(yùn)算順序,經(jīng)常在定義中使用必要的圓括號(hào)將字符串括起來。

查看完整回答
反對(duì) 回復(fù) 2019-04-15
?
楊魅力

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

在C語言中宏是用來加載代碼的,是一個(gè)單獨(dú)的程序處理的。
比如,#define f(n) n==0? 1:f(n-1)+f(n-2)
當(dāng)n=5時(shí),就會(huì)被展開為
f(n-1)+f(n-2);
之后f(n)就找不到了,所以無法實(shí)現(xiàn)遞歸。

查看完整回答
反對(duì) 回復(fù) 2019-04-15
?
qq_笑_17

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

就是宏里邊可以嵌套宏例如:
#ifdef AA
……
#ifdef BB
……
#endif
……
#endif
遞歸?誰會(huì)拿宏來遞歸呢

也許不是這個(gè)意思也許是說這個(gè)吧:
#define a aa;
#define aa 1;
可嵌套是指這個(gè)意思吧;
不可遞歸就是不能定義回去吧,比如說:
#define a aa;
#define aa aaa;
#define aaa a;





查看完整回答
反對(duì) 回復(fù) 2019-04-15
?
慕俠2389804

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

可以嵌套:#define a bb(不能是aa)
#define bb 123
預(yù)編譯時(shí)a會(huì)變?yōu)?23
不可遞歸:#define c 1+c
或#define c 1+b
#define b 1+c
預(yù)編譯時(shí)c會(huì)變成1+1+1+1+1+......無限循環(huán)

查看完整回答
反對(duì) 回復(fù) 2019-04-15
  • 4 回答
  • 0 關(guān)注
  • 1330 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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