急求助 宏定义 是何义
人家常常说,给它一个宏定义,到底是什么意思啊,书本上好少写呢, 是不是就是常量的定义?? 那怎么会叫宏?>?? 是什么意思啊,,这问题在1年前我就想不通了, 呵呵.1年前我还没学编程,不过,在书上看到,不懂所以,现在又碰到,,不得不发问到底了,哪位 阁下知道的请指明一二! 谢谢了 !
不一定是常量,宏其实就是起到替换的作用,如:
#define MAX(a,b) a>b?a:b
这也是宏定义,而且跟函数不同,这里的a,b没有指定类型,但上面的写法是错误的,使用的时候
int main()
{
int a = 5, b = 7;
int c = MAX(a+b, a*b); // 完全代入得 int c = a+b > a*b ? a+b : a*b; <- 这什么式子嘛!!
printf("%d\n", c);
}
所以要这样定义: #define MAX(a,b) ((a)>(b)?(a):(b))
这样上式相当于
int c = ((a+b) > (a*b) ? (a+b) : (a*b));