一文读懂C++inline函数

樵夫2021-10-13 16:08

    inline函数由inline关键字定义,引入inline函数的主要原因是用它替代C中复杂易错不易维护的宏函数。

一文读懂C++inline函数

    编译器对inline函数的处理办法

    编译器在编译阶段完成对inline函数的处理,即对inline函数的调用替换为函数的本体。但inline关键字对编译器只是一种建议,编译器可以这样去做,也可以不去做。从逻辑上来说,编译器对inline函数的处理步骤一般如下:

    (1)将inline函数体复制到inline函数调用处;

    (2)为所用inline函数中的局部变量分配内存空间;

    (3)将inline函数的的输入参数和返回值映射到调用方法的局部变量空间中;

    (4)如果inline函数有多个返回点,将其转变为inline函数代码块末尾的分支(使用GOTO)。

    inline函数使用的一般方法

    函数定义时,在返回类型前加上关键字inline即把函数指定为内联,函数申明时可加也可不加。但是建议函数申明的时候,也加上inline,这样能够达到"代码即注释"的作用。

    inline函数的优点与缺点

    从上面可以知道,inline函数相对宏函数有如下优点:

    (1)内联函数同宏函数一样将在被调用处进行代码展开,省去了参数压栈、栈帧开辟与回收,结果返回等,从而提高程序运行速度。

    (2)内联函数相比宏函数来说,在代码展开时,会做安全检查或自动类型转换(同普通函数),而宏定义则不会。

    点击图片免费领取课程

一文读懂C++inline函数

    以上就是小编为大家整理发布的“一文读懂C++inline函数”一文,更多相关内容尽在开课吧广场C++教程频道。

免责声明:本站所提供的内容均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用。如涉及版权问题,请联系本站管理员予以更改或删除。
有用
分享
全部评论快来秀出你的观点
登录 后可发表观点…
发表
暂无评论,快来抢沙发!
算法刷题核心能力提升营