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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

#define POCKETMONEY 10

#define POCKETMONEY 10? 這里后面加上分號(hào)就不能運(yùn)行是什么鬼?

正在回答

2 回答

#define 本質(zhì)上是字符的替換 ?

比如

#define?A?1
//?...
int?a?=?A;??//?編譯的時(shí)候編譯器就做了替換,這里變成了?int?a?=?1;

如果你加了 分號(hào),就變成了這種情況

#define?A?1;
//?...
int?a?=?A;?//?替換后就成了?int?a?=?1;;??這當(dāng)然是錯(cuò)的

所以說(shuō) #define 用的時(shí)候要注意,尤其是定義“函數(shù)”時(shí),注意加括號(hào),否則容易有歧義

所以C++中,建議使用 const 來(lái)定義全局的常量,使用 typedef 定義類型別名,使用函數(shù)定義函數(shù)(C++可以使用functional模板函數(shù),以及auto類型推斷,很方便。當(dāng)然因?yàn)镃++不斷的加新的特性,變得復(fù)雜臃腫,也有很多人不喜歡C++,比如Linux大神Linus喜歡純C)

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

qq_旗號(hào) 提問(wèn)者

非常感謝!么么噠(づ ̄ 3 ̄)づ
2015-11-05 回復(fù) 有任何疑惑可以回復(fù)我~

另外,因?yàn)橹皇亲址鎿Q,#define不會(huì)做類型檢查,所以如果你使用#define定義“函數(shù)”,調(diào)用時(shí)傳錯(cuò)了參數(shù),編譯器在編譯的時(shí)候是不會(huì)發(fā)現(xiàn)的,這就把可能的錯(cuò)誤推到了運(yùn)行時(shí),甚至可能不容易發(fā)現(xiàn)。這樣是不好的,錯(cuò)誤越早發(fā)現(xiàn)越好,所以建議能不用 #define 就不用 #define。當(dāng)然個(gè)人觀點(diǎn)而已,就像goto語(yǔ)句一樣,雖然很多人建議不用,不過(guò)即使啊Google,在Android的源碼里也經(jīng)常使用goto

0 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

#define POCKETMONEY 10

我要回答 關(guān)注問(wèn)題
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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