程序带调用函数需要一定的时间\空间花销,这就要求在主程序进行过程中调用函数前几下执行指令的地址及其他相关信息,一边函数调用后能继续执行.函数调用后流程返回先前记下的地址处,并根据记录的相关信息回复,而这都需要消耗时间,若有函数频繁使用,那么执行时间会很长,大大降低程序执行效率.因此,我们使用内联函数将函数代码直接嵌入到主调函数中,而不是将流程转出去,减少频繁调用带来的效率降低的问题.
下以 max(int a, int b) 为例:
#include<iostream> using namespace std; inline int max(int,int); #声明内联函数 int main() { int a=3,b=7; cout<<max(a,b); return 0; } inline int max(int a,int b) {return a>b?a:b;}
注意,内联函数的使用范围多是体积小而使用的频繁的代码.像包含递归\循环\switch语句的函数是无法进行代码置换的,而代码量多大上千行的函数在调用点展开也不现实,在这些情况下,编译系统会自动忽略inline声明,按照普通函数处理.
原文链接: https://www.cnblogs.com/runsdeep/p/11146682.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/298383
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!