【提问】C库函数调用与参数宏的区别!
以求最大值为例!!!(1)使用库函数:
#include <stdlib.h>
main()
{
int a,b,t;
scanf("%d%d",&a,&b);
t=max(a,b);
printf("This is %d.\n",t);
getch();
}
(2)使用宏定义:
#define max(a,b) (a)>(b)?(a):(b)
main()
{
int a,b,t;
scanf("%d%d",&a,&b);
t=max(a,b);
printf("This is %d.\n",t);
getch();
}
请指点下:
一、
不知,(1)中在预编译后,是把库函数中的所以内容都被包括进来,还是只包括了,max()函数?
二、
我看了它的库函数,其中对max()的定义是这样的:
#define max(a,b) (((a) > (b)) ? (a) : (b))
(不知我这么说对不对?)按这样的话,在预编译后,那不就和例(2)的一样了吗?这不就,使得函数和预编译没区别了吗???又何来的函数调用???倒完全成了一个预处理了!!!
小弟对此处不是很明白,望大家指点一二!不胜感激!!!先谢过!!!