C++中内联函数的使用

在C++中一个普通函数的调用的过程:程序会保存当前函数的执行现场,将函数中的局部变量以及函数地址压入堆栈,然后再将即将调用的新函数加载到内存中,这要经历复制参数值、跳转到所调用函数的内存位置、执行函数代码、存储函数返回值等过程,当函数执行完后,再获取之前正在调用的函数的地址,回去继续执行那个函数。

虽然这些函数调用在现代的CPU运行过程中不算什么,但是相对于直接运行代码,运行时间开销简直太多了。

C++ 内联函数是优化编译的一种技术,在提高运行时间上有很大的帮助。在编译的时候,编译器会自动的把内联函数的函数体替换在这个函数调用的地方。通过内联函数,编译器不需要跳转到内存其他地址去执行函数调用,也不需要保留函数调用时的现场数据,这样在运行的时候就会降低函数调用的成本。

内联函数的使用:
1.只要是在函数定义的地方添加关键字inline就可以了
2.在.h文件中,在类中函数的声明同时有函数的定义,可以不用添加inline关键字。

Class A
{
 Public:
    inline int add(int a, int b)
    {
       return (a + b);
    };
}

Class A
{
 Public:
    int add(int a, int b);
};

inline int A::add(int a, int b)
{
   return (a + b);
}

上面的两个例子都是内联函数的正确使用方式!

注意:
并不是所有的被声明为内联函数的函数都会被被编译器作为内联函数使用,内联声明只是一种对编译器的建议,编译器是否采用内联措施由编译器自己来决定。如何函数体非常大,那么编译器将忽略函数的内联声明,而将内联函数作为普通函数处理。

aaa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wb175208

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值