当我们的程序十分复杂,比如这个函数内部定义了很多局部变量,然后我们想调用一个函数
int _cal(int a,int b)
{
return a*2+b;
}
我们发现这个函数的作用十分简单,但是我们想要调用这个函数的时候,我们需要把之前函数的局部变量入栈,如果局部变量很多的话,可能os切换上下文的时间就很长了,甚至这个时间大于执行这个函数的时间。
因此我们引入了inline。inline在编译期就将这个函数展开,在运行时候直接执行展开后的结果。
int main()
{
cout<<_cal(2,3);
//等价于 cout<<2*2+3;
return 0;
}
inline适用场景:当前函数变量非常多,切换函数上下文需要保存的变量特别多,而所要执行的函数的内容非常简单的时候。
坏处:可能带来代码膨胀,内存空间有所占用

当程序中的函数具有大量局部变量,导致上下文切换开销大时,可以使用inline关键字。inline函数在编译时期被展开,减少调用开销,提高效率。然而,这可能会增加代码体积,带来内存占用。简单且频繁调用的小函数是inline的最佳应用场景。
989

被折叠的 条评论
为什么被折叠?



