C++ 中的 inline 详解

inline:是一个关键词,放在一个函数前面,说明这个函数是inline函数。

inline函数是什么?inline有什么作用?

为了解答这个问题,我们首先要知道编译器是如何为我们工作的。

先看一段代码:

int func(int n) {return 2*n;}
int main(){

int a;
int b=func(a);
return 0;
}

在这段代码中,我们有一个函数,func,编译器在执行这段代码时,首先在main里,执行,当遇到func函数时,对func进行一系列的操作,开辟内存,然后执行func力的代码。

执行完成之后返回,最后pop出来。

每次调用函数都会有开辟+执行函数里的代码+pop out

inline函数就是来优化这个过程的。

它的作用就是去除开辟和pop out的过程。

如何实现这样的功能呢?

inline的原理就是将func里的代码拷贝到mian里调用函数的那条语句里来,直接执行不需要另外开辟空间如何再删除。

但是编译器也是有脾气的,不能什么函数都这样。

reference:

C++ 中的 inline 用法

https://www.runoob.com/w3cnote/cpp-inline-usage.html

2、inline使用限制

inline 的使用是有所限制的,inline 只适合涵数体内代码简单的涵数使用,不能包含复杂的结构控制语句例如 while、switch,并且不能内联函数本身不能是直接递归函数(即,自己内部还调用自己的函数)。

3、inline仅是一个对编译器的建议

inline 函数仅仅是一个对编译器的建议,所以最后能否真正内联,看编译器的意思,它如果认为函数不复杂,能在调用点展开,就会真正内联,并不是说声明了内联就会内联,声明内联只是一个建议而已。

使用:只需要在函数最前面加上一句 inline即可。

我的使用建议:都加上inline提高程序执行效率,但是编译器能否采用,就看他自己的想法了。

reference:浙江大学 翁恺老师c++
原文链接: https://www.cnblogs.com/pengzhangzhi/p/12448946.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/194131

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午6:36
下一篇 2023年2月12日 下午6:36

相关推荐