内联函数(inline)

                                              内联函数(inline)

1、用法:在函数声明和定义的前面加上inline

2、目的:内联函数(inline)是为了提高程序的运行速度所做的改进。

程序中执行常规函数的调用时,需要一定的开销,比如将函数参数复制到堆栈,做来回的跳跃等等。

3、内联函数调用则与常规函数不同:内联函数直接将函数代码贴到函数调用的地方,使得程序在调用函数时不用做来回的跳跃等其他操作,从而达到提高程序运行速度的目的。

可见内联函数和常规函数的区别在于C++编译器把它们组合到程序中的方式。

4、何时选用内联函数:虽然内联函数确实可以提高程序的运行速度,但是是以占用更大的内存为代价的,是一种以空间换时间的策略。所以应当在那种函数代码执行时间很短的时候,采用内联函数这种方法。

5、inline是C++新增的特性,它的原始实现其实是C语言中的宏定义——#define。inline和宏定义有以下区别:inline是按值传递参数的,而宏定义是做简单的文本替换;宏是由是由预处理器对宏进行替代,内联函数是由编译器在编译阶段进行的展开。

总之,inline和宏定义有以下区别:

  • inline函数是函数,宏不是函数
  • 内联函数在编译时展开,宏是在预编译阶段展开的
  • 在编译的时候,内联函数可以直接被镶嵌到目标代码中,宏定义只是简单地做文本替换
  • 内联函数可以完成类型检查、语句是否正确等编译功能,宏不具备这样的能力
  • 宏定义在处理宏参数时要非常小心,容易产生二义性,而内联函数定义时不会产生二义性

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值