1、宏定义与函数的区别
1.1宏定义函数未定义参数类型,任何操作合法的参数类型都可以传进宏定义中,而函数的参数是与类型有关的;自定义函数有明确的参数类型。
1.2宏定义相较于函数,不需要调用栈,运算速度更快
1.3宏定义只是简单的替换,容易发生错误
#define SUM(a,b) a+b
#define SUM_TWO(a,b) (a+b)
int v1 = 10;
int v2 = 20;
int res = 0;
res = SUM(v1,v2)/10; //本意求(10+20)/10=3,计算结果为 12
res = SUM_TWO(v1,v2)/10; //计算结果为3
1.4宏定义会增长程序的长度
2、宏定义与长函数
注意:每一个换行的时候加上一个"\"
#include "stdafx.h"
#define PRINTF(a,b){\
for(int i = a;i < b;i++)\
printf("%d\n",i);\
}\
int main()
{
int a = 1;
int b = 10;
PRINTF(a, b);
return 0;
}