C++内联函数

内联函数

 内联函数是C++为了提高程序的运行速度所作的一项改进。与常规函数的区别不在于编写方式, 而是在于C++编译器如何将代码块整合到程序中。
 本文不做过多原理介绍,有需要定义可查看内联函数

inline关键字

 要使用内联函数必须在函数定义和函数声明时加上inline关键字。

inline <函数类型> <函数名> {函数体}

 下面是一个简单加法函数的举例.

/*
实验目的:内联函数的使用 inline关键字
实验时间:2019.9.12
实验人员:@Answer
内联函数:(宏函数的缺陷)
		1、以空间换时间:调用函数时编译器会将函数替代成函数内部语句
		2、类的成员方法会自动加上inline关键字
		3、注意事项:
			函数内部不能存在for、以及过多的if语句
			函数不能进行取址操作
			函数体不能太庞大
心得:以空间换时间
*/

#include <iostream> //输入输出标准库
#pragma warning(disable:4996)//处理4996异常

using namespace std;//定义命名空间

/*宏函数*/
#define Add(x,y) x+y //宏函数:用于处理小的函数,可以节省出入栈开销,但是存在缺陷
/*内联函数:inline+函数名*/
inline int Add_1(int x, int y) {
	return x + y;
}

/*主函数*/
int main(void) {
	cout << "宏函数输出:" << Add(10, 20) << endl;
	cout << "内联函数输出:" << Add_1(10, 20) << endl;
	system("pause");
	return 0;
}

注意事项

  • 内联函数内部不能存在 for 循环以及过多的 if 语句
  • 函数不能进行取址操作
  • 函数体不能太过庞大,一般适用于代码量较为简单的函数

优点

以空间换时间:
  编译器在编译时会将函数调用的语句 Add(10,20) 直接用所调用的函数的函数体 return x + y 进行编译,这样就节省了出入栈的操作,提高程序运行的速度。
当然在代码量小的情况下看不出大区别,但是在大项目中,代码的运行速度还是很关键的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值