例子二:用宏实现.
#include<stdio.h>
#include<conio.h>
#include<time.h>
#define GETMAX(X,Y,Z) ((X>=Y?X:Y)>=Z?(X>Y?X:Y):Z)
#define tGETMAX(X,Y,Z,M,N,P) \ /*由于一行不好写,所以将其写到第二行,但要加一个'\'作标记*/
(GETMAX(X,Y,Z)>=GETMAX(M,N,P)?GETMAX(X,Y,Z):GETMAX(M,N,P))
int main(void)
{
time_t start,end;
long i;
clrscr();
start=clock();
for(i=0;i<10000000;i++)
tGETMAX(1,2,3,4,5,6);
end=clock();
printf("%lf",(double)(end-start)/CLK_TCK);
getch();
}
执行时间:0.054945秒
可执行文件大小:29,497字节
由于上面二个例子可见:在时间上1.373626秒与0.054945秒之间的差值.
在空间上29,938字节与29,497字节之间的差值.
这里需要注意的是,使用宏来实现在空间上的优势只当宏使用得很少.
但当宏使用得多空间效率就没有用函数来实现的好.
评论 {{userinfo.comments}}
{{child.content}}
{{question.question}}
提交