怎样理解用define定义的函数?
#define MIN(x,y) (x)<(y)?(x):(y)main()
{ int i,j,k;
i=10;j=15;
k=10*MIN(i,j);
printf("%d\n",k);
}
答案是15
请问各位如何解释?谢谢!
----------------解决方案--------------------------------------------------------
宏定义不做计算,所以(x)<(y)?(x):(y)直接替代MIN(x,y),在程序中计算时X先与十乘,在和Y比较。
应该这样#define MIN(x,y) ((x)<(y)?(x):(y))
则 K=100
----------------解决方案--------------------------------------------------------
好的。谢谢。
----------------解决方案--------------------------------------------------------