C++内联函数介绍(详细)

一、内联函数的意义

        在C++语言中,一般函数的调用都是程序将会跳转到函数的定义处执行函数体,然后返回结果给调用方,这样可以提高程序的执行效率。但是会增大函数调用的开销。像这种常见的函数适合,重复调用的次数多或者函数体实现比较复杂的程序中。

        而在函数体不是很复杂,或者函数调用次数少的情况下。继续使用常见的函数方法,这样效率提升非常不明显,并且还会增大调用的开销,明显的付出与回报不成正比。而这时候内联函数就派上用场了。下面我们来介绍内联函数的用法,作用。

二、内联函数的作用及深层含义

        首先我们要知道内联函数的关键字inline

1.内联函数的实现

普通函数的实
int Example(int a, int b)
{
    int c = a + b;
    return d;
}
内联函数的实现
inline int Example(int a, int b)
{
    int c = a + b;
    return c;
}

由上面的两段代码块,我们可以发现内联函数在实现上与普通函数的差异为多了个inline

2.内联函数的运行过程

常见的函数的调用:

常见的函数的调用都是程序将会跳转到函数的定义处执行函数体,然后返回结果给调用方。如下:

function.h(声明)

#include<iostream>
using std::cout;
using std::endl;
using std::cin;

int function(int a, int b);

funtion.cpp(定义)

#include"function.h"

int funciton(int a, int b)
{
    int c = a + b;
    return 0;
}

Test.cpp

#include"funciton.h"

int main()
{
    int sum = function(2, 3);
    return 0;
}

在Test中运行时调用function函数时会跳转到函数的定义处执行函数体,然后返回结果给调用方。

内联函数的调用:

内联函数的调用与普通函数有着很明显的区别,需要在调用处进行函数体的替换。如下:

functions.h(声明与定义尽量放在一起)

#include<iostream>
using std::cout;
using std::endl;
using std::cin;

inline int functions(int a, int b)
{
    int c = a + b;
    return c;
}

Test.h

#include"funcitons.h"

int main()
{
    int sum = functions(2, 3);
    return 0;
}

此时调用function函数时就会直接展开function,而不是跳转。展开后的代码可能如下:

#include"funcitons.h"

int main()
{
    int sum = 2 + 3;
    return 0;
}

3.内联函数的代码位置

常见的函数一般是声明在function.h文件中,定义在function.c文件中。声明与定义分离。

内联函数虽然也可以声明与定义分离,但由于内联函数需要在调用处进行函数体的替换,因此通常建议将内联函数的声明和定义放在同一个头文件中,以便在每个调用处都能够进行内联替换。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值