宏比函数实现在时间上的优越性探讨

宏比函数实现在时间上的优越性探讨,第1张

宏比函数实现在时间上的优越性探讨,第2张

在某些程序设计中,有些方法可以用函数来实现也可以用宏定义来实现.一般来说用宏定义的方法在时间上占有相当大的优势,在空间上有时也占一定的优势.这是因为函数在调用时,需要保护现场和恢复现场,所进行的压栈和出栈操作.此外,函数在调用时要形参分配临时空间,还要对实参和形参的传递等处理.而宏在程序中只是将它展开直接插入到程序段中,因此不需要像函数调用那样.因此宏定义节约了一定的CPU处理时间.下面给出二个例子,就能更形象说明问题了.
例子一:用函数实现
#include
int GETMAX(int x,int y,int z)
{
return (x>=y?x:y)>z?(x>y?x:y):z;
}
int tGETMAX(int x,int y,int z,int m,int n,int p)
{
return 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=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

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 宏比函数实现在时间上的优越性探讨

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情