2011-09-04 60 views

回答

6

它評估p++兩次。此外,由於第一次評估發生變化p,第二次約它將指向一個不同的元素。所以返回的值將是*(initialp + 1)b

你應該自己試試。

2

*p++被兩次評估的宏擴展到*p++ <= b ? *p++ : b

此外,還有爲「嵌入式C」沒有這樣的事。

7

宏將擴展爲:

least = ((*p++)<=(b)?(*p++):(b)) 

你會有那麼*p++兩次在發言(即,它將會增加兩倍)。

+0

只是一個與問題沒有完全相關的評論:這是許多語言沒有宏的原因之一:可以混淆你的代碼。 – Matteo