#define MAX(a,b) ((a)>(b)?(a):(b))
int MAX1(int a,int b)
{
return a>b?a:b;
}
1)宏定义函数没有参数类型也不做类型检查,预编译阶段直接进行宏替换。所以对上面的宏定义函数他可以比较不同类型的数据大小,而普通函数则只能比较形参类型的大小。
2)宏定义函数时一定要注意括号的存在和匹配,有时会因为 括号的不存在就会导致函数在计算的时候出现优先级错误的现象继而导致整个程序出错。
3)调用宏定义函数和普通函数生成的指令不同。
普通函数每次编译都要生成指令并且在每次调用时都要生成传参指令和ca