上代码:
#include<stdio.h>
#define Max(a,b) ((a>b)?(a):(b)) //预处理实现
int max(int a,int b) //函数实现
{
return a>b?a:b;
}
int main()
{
printf("%d\n",Max(18,19));
printf("%d\n",Max(19,18));
printf("\n");
printf("%d\n",max(19,18));
printf("%d\n",max(18,19));
return 0;
}
用了两种实现方法:
1.对于预处理宏实现可以对于任意的两个数值进行比较,但可能会存在非数值进行比较。
2.对于函数实现,会进行参数检查,但灵活性较差(只能比较整数),效率较低。
如果使用c++就可以使用函数重载和模版来解决问题。