内联函数

本文探讨了C++中内联函数的使用及其对程序性能的影响。内联函数通过减少函数调用开销来提高执行效率,但可能会增加程序尺寸。文章详细解释了内联函数的工作原理,以及如何正确地在代码中应用这一特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从软件工程的立场来看,把程序通过一组函数来实现是不错的方法,但是函数调用涉及执行时间开销。

C++提供的内联函数(inline function)可以减少函数调用的开销——特别是对于小函数。但是会增加程序尺寸。

打个比方:每一处内联函数的调用都要复制代码,将使程序的总代码量增大,消耗更多的内存空间。
即:以代码膨胀(复制)为代价

#include <iostream>
using namespace std;

inline double cube(const double side)		//cube是这里的内联函数,关键字const告诉编译器函数不修改变量side的值
{
	return side*side*side;
} 

int main()
{
	double sideValue;
	cout<<"请输入立方体的长:";
	cin>>sideValue;
	cout<<"立方体边长和体积:"<<sideValue<<"  "<<cube(sideValue)<<endl;
}

利用const限定词增强最小特权原则。使用最小特权原则进行正确的软件设计可以大大减少调试时间和错误的副作用,也使得程序更容易修改和维护

在函数定义中,把限定词inline放在函数返回类型的前面“建议”编译器在适当的地方生成函数代码的副本,以避免函数调用。这种折中办法是把函数代码的多份副本插入到程序中(通常会使程序变大),而不是仅对一份函数代码,每次调用函数时都会把控制权传给它。编译器可以忽略inline限定词,并且对于除了小函数外的函数通常会这样做。

inline限定词应该只适用于小的、经常使用的函数。

如下风格的函数foo不能成为内联函数

inline void foo(int x,int y)
void foo(int x,int y)  {   }

如下风格的函数foo则可以成为内联函数

void foo(int x, int y)
inline void foo(int x,int y)  {  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值