C语言函数式宏的有关问题

C语言函数式宏的问题?
C语言函数式宏的有关问题
第一行能理解,第二行理解不了了
#define max(x,y) (((x) > (y)) ? (x) : (y))

int main(void)
{
int i,j,m,n;
scanf("%d,%d,%d,%d",&i,&j,&m,&n);
printf("%d\n",max((i,j),max(m,n)));
printf("%d\n",max((i,j),m),n);
system("pause");
return 0;
}

用这段程序去验证,输入1,2,3,4的话,第一个printf打印的值是4,第二个printf打印的是3
------解决思路----------------------
printf("%d\n",max((i,j),max(m,n)));
printf("%d\n",max((i,j),m),n);

少了max
你仔细看看,max(x,y)函数中所要的两个参数x,y在你的程序中能不能满足,仔细点。