#define FUN(x,y) (x)<(y)?(x):(y)
void main()
{
int i = 10, j = 15, k;
k = 10 * FUN(i, j);
printf("%d\n", k);
}
展开不是10*(x)<(y)?(x):(y)吗,i小于j为真返回10,10再*10不应该是100吗
为什么它编译的结果是15?很懵,是因为10先乘x再和y对比吗
#define FUN(x,y) (x)<(y)?(x):(y)
void main()
{
int i = 10, j = 15, k;
k = 10 * FUN(i, j);
printf("%d\n", k);
}
展开不是10*(x)<(y)?(x):(y)吗,i小于j为真返回10,10再*10不应该是100吗
为什么它编译的结果是15?很懵,是因为10先乘x再和y对比吗
10先乘x再跟y对比,三目运算符的优先级低于乘。