在大多数机器上,一次函数调用其实包含着一系列工作:调用前要先保存寄存器,并在返回时恢复;可能需要拷贝实惨;程序转向一个新的位置执行。
所以一般来说:调用函数一般比求等价表达式的值要慢一些。
内联函数可避免函数调用的开销
将函数定义为内联函数,通常就是将它在每个调用点上“内联地”展开。
下面我们给出一个加法器的例子
int plus(int x, int y){
return x+y;
}
在main函数中调用这个加法器函数
int main(){
int a = 1;
int b = 1;
std::cout<<plus(a,b)<<std::endl;
return 0;
}
如果我们把plus函数定义成内敛函数,即在返回值类型前加上inline关键字
其将在编译过程中展开成类似下面的模式
int main(){
int a = 1;
int b = 1;
std::cout<<a+b<<std::endl;
return 0;
}
一般来说。内敛机制用于优化规模较小、流程直接、频繁调用的函数。