首先看一下下面的代碼#define?MAX(a,?b)?\
({?\
typeof(a)?_a?=?a;?\
typeof(b)?_b?=?b;?\
(void)(&_a?==?&_b);?\
((_a)>(_b)???(_a)?:?(_b));?\
})({......})是語(yǔ)句表達(dá)式問(wèn)題1:里面的(void)(&_a==&_b)書上說(shuō)是比較地址類型,但這不是比較地址嗎?為什么會(huì)是比較地址類型?問(wèn)題2:還是有關(guān)(void)(&_a==&_b),書上說(shuō)它的作用是“前面的強(qiáng)類型轉(zhuǎn)換(void)目的是要讓編譯器認(rèn)為后面的比較語(yǔ)句是有作用的,從而不會(huì)因?yàn)檎`以為沒(méi)有實(shí)際作用而報(bào)出其他我們不需要的警告。”1.“前面的強(qiáng)類型轉(zhuǎn)換(void)目的是要讓編譯器認(rèn)為后面的比較語(yǔ)句是有作用的”這句話,編譯器從上往下編譯,應(yīng)該是不會(huì)忽略掉后面的語(yǔ)句的,那“讓編譯器認(rèn)為后面的比較語(yǔ)句是有作用的”這句話是不是有點(diǎn)多余??2.我去掉那條語(yǔ)句的時(shí)候編譯的時(shí)候沒(méi)有警告,加上反倒有警告,無(wú)法理解“編譯器從而不會(huì)因?yàn)檎`以為沒(méi)有實(shí)際作用而報(bào)出其他我們不需要的警告”
在define里面遇到的問(wèn)題
你想象不到我有多執(zhí)著
2017-01-05 14:04:15