用一段代码来说明:
/***************************************
* 功能:带参数宏和函数的比较
* 作者:lml 时间:2020年4月17日 14:47
* ************************************/
#include<stdio.h>
#define MIN(a,b) a<b?a:b
int MIN_Func(int a,int b)
{
return a<b?a:b;
}
int main(int argc, const char *argv[])
{
int a=3,b=4;
printf("%d\n",MIN(a,b));
printf("%d\n",MIN_Func(a,b));
return 0;
}
/***********************************************
*函数和宏的区别:
*宏直接把代码展开到主函数中运行,所以宏定
*义的代码不宜过长;宏的参数不需要声明类型。
*函数需要声明参数的类型,而且调用函数系统需要压栈
*会带来额外的开销,但一般代码长度可以很长
* *********************************************/
结束。