c++: inline_函数与内联函数(超详细)

Posted 「已注销」

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++: inline_函数与内联函数(超详细)相关的知识,希望对你有一定的参考价值。

c++: inline_函数与内联函数

函数: 函数是指一段可以直接被另一段程序或代码引用的程序或代码。

函数作用: 通过将某些功能性模块编写成函数, 可以在很多情况下减少重复编写程序段的工作

从而提高编写代码的效率, 同时还能提高代码的可读性, 便于程序多人开发

c/c++ 函数定义:
返回类型 名字(形式参数列表)
    函数体语句...
    return 表达式;

c/c++ 函数调用:
名字(实际参数列表);

但是在函数带来很多便利的同时, 也一定有某些负作用的产生:

通过解析函数在内存中的运行原理来了解函数的负作用:

普通函数:

通过上图可以了解到函数的使用会消耗时间, 而当今时代对代码时间的要求越来越高, 空间的需求渐渐减小

那么我们是否可以通过某种方式将函数调用的时间消耗转变为空间消耗呢?

那就是内联函数:

c++内联函数实现:

#include <iostream>
using namespace std;

inline int fun(int a, int b)
    return a + b;


int main()
    int m, n;
    cin >> m >> n;
    cout << fun(m, n);

这是一个很简单的求和内联函数,

内联函数是函数的一种,在c++中只需要在函数定义前加上inline即可;

总结:

1. 内联函数是一个特殊的函数, 调用与普通函数一致;
2. 内联函数通过内存膨胀来减少函数的跳转
3. 函数体代码过长, 或函数体中有循环, 不建议使用内联
4. 函数体是简单的赋值语句或者返回语句, 而且使用频率高, 建议使用内联

注:

内联函数在这里类似宏替换, 但他们是有区别的, 内联函数是一个函数, 是在程序执行期间运行的, 没有函数的入栈和出栈, 宏替换是预处理阶段执行的, 本质是替换, 内联函数有形参类型, 有返回值类型和返回值, 带参数的形参是没有类型, 没有返回值类型也没有返回值

以上是关于c++: inline_函数与内联函数(超详细)的主要内容,如果未能解决你的问题,请参考以下文章

函数内联 inline,__inline,__forceinline

gcc悄无声色将静态函数内联了

C++基础--inline

关于C++内联函数

内联函数分析

c++中的内联函数inline