C++-内置函数(内联函数)

函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。

另外,函数执行 return 语句返回时,需要从栈中回收形参和局部变量占用的存储空间,然后从栈中取出返回地址,再跳转到该地址继续执行,这个过程也要耗费时间。

调用函数需要一定时间,如果函数需要频繁的调用,累计时间就会增加,从而降低效率,而C++有一个方法,在编译的时候就将调用的函数代码嵌入主函数中去,这个方法叫做内置函数,也叫内联函数。

内置函数只需要在函数的首行左端加上关键字inline。

inline int max(int a,int b)
{
	return a>b?a:b;
}

有了内联函数,就能像调用一个函数那样方便地重复使用一段代码,而不需要付出执行函数调用的额外开销。很显然,使用内联函数会使最终可执行程序的体积增加以时间换取空间,或增加空间消耗来节省时间,这是计算机学科中常用的方法。

内联函数中的代码应该只是很简单、执行很快的几条语句。如果一个函数较为复杂,它执行的时间可能上万倍于函数调用的额外开销,那么将其作为内联函数处理的结果是付出让代码体积增加不少的代价,却只使速度提高了万分之一,这显然是不划算的。

有时函数看上去很简单,例如只有一个包含一两条语句的循环,但该循环的执行次数可能很多,要消耗大量时间,那么这种情况也不适合将其实现为内联函数。

可参考:https://blog.csdn.net/qq_40416052/article/details/82260681

猜你喜欢

转载自blog.csdn.net/qq_40452317/article/details/89848548