通过实际测试,把复杂的函数分成几个子函数写运行速度会快一点,例如
在某个函数内部需要交换两个数,写成
temp=a;
a=b;
b=temp;
不如写成
swap(a,b);
在外面定义swap函数,这样既方便,效率又高。
为什么调用swap函数效率高呢?
其实也只是稍微高那么一点点,运行千万次也就快及毫秒,但是最主要是将函数模块化,加大了函数的重用率,使精力能够集中在主函数的逻辑上,这就是面向对象的好处之一吧。其速度快显然是因为编译器会将短小的swap函数声明为inline,所以加快了一点点速度。我们在定义swap函数时,也可以显式地将swap定义为inline函数:
C语言的写法:
inline void swap(int *a, int *b)
{ int temp=*a;
*a=*b;
*b=temp;
}
调用方法swap(&a, &b);
C++写法(用引用)
inline void swap(int &a, int &b)
{ int temp;
temp=a;
a=b;
b=temp;
}
调用方法swap(a, b);