min只是简单的字符替换,10*min(i,j); 展开后变成10*(i
k = 10*(x因为*的优先级大于?:,所以先计算10*(10<15) = 10所以k=10?10:15所以结果为10,因为条件表达式的条件10为真。
min(x,y)是一个宏,编译时宏代码会被直接替换,替换之后展开如下:k=10*(xk=10*(i由于*操作的优先级比?:操作的优先级高,即有k=10*1?i:j;因此k=i!
define 定义一个宏在预编译时会进行简单的替换,则k=10*(x
k=10*min(i,j);因为min(i,j) (i答案为15 而不是10 如果#define min(x,y) ((x