宏定义写在开头,只是字符替换。具有以下特点:
1.宏定义增加函数总体的代码长度:
double Area(int r)
{
return N*r*r;
}
double Area1(int r)
{
return N*r*r;
}
int main()
{
double i=Area(2);
printf("%f\n",i);
double j=Area1(2);
printf("%f\n",j);
return 0;
}
其中宏被插入到Area和Area1函数里,而直接在函数里写只是执行函数里面的语句,因此宏要更长。
2.宏的执行速度比函数要快,因为函数调用需要参数传递,调用完再返回主函数。然而宏在编译器中只是字符替换,不影响运算速度。因此宏的执行速度要更快。
3.宏对参数类型没有要求,它可以是任何参数类型:
#include<stdio.h>
#define N 65
int main()
{
int a=N;
double b=N;
char c=N;
printf("%d\n%f\n%c\n",a,b,c);
return 0;
}
宏定义的N可以是int,double,char类型。
4.宏的参数不占内存空间。