2011-09-04 55 views

回答

6

它评估p++两次。此外,由于第一次评估发生变化p,第二次约它将指向一个不同的元素。所以返回的值将是*(initialp + 1)b

你应该自己试试。

2

*p++被两次评估的宏扩展到*p++ <= b ? *p++ : b

此外,还有为“嵌入式C”没有这样的事。

7

宏将扩展为:

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

你会有那么*p++两次在发言(即,它将会增加两倍)。

+0

只是一个与问题没有完全相关的评论:这是许多语言没有宏的原因之一:可以混淆你的代码。 – Matteo