内联函数详解!!!

内联函数的概念
以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数压栈开销,提高运行效率

适用内联函数的场景
函数代码少,调用频繁

为什么要有内联函数
1.内联函数在编译时会进行替换,少了函数的压栈开销,提高运行效率
2.宏函数的缺点:在预处理时展开了,因此不会进行参数类型检测,并不能进行调试,实现要求严格(参数要求带括号)

内联函数和宏函数的区别
1.内联函数可以进行调试
2.内联函数实现简单,不需要加括号
3.内联函数运行时不会有副作用

C++中有哪些方式可以替代宏
1.对于宏常量的替代:C++中使用const类型的常量来进行替换,因为在C++中,被const修饰的变量是常量,const修饰的变量在编译期间会被其常量值替换掉,const修饰的常量就会参与类型检测,程序的安全性就会更高。
2.对于宏函数的替代:宏函数就是使用内联函数来进行替换,替换时机不同,宏函数是在预处理阶段进行替换,内联函数是在编译阶段进行替换,因此内联函数参与到编译中,代码安全性高,好那个函数不是一个真正的函数,

内联函数的优缺点
优点:内联函数在编译时展开,提高代码的运行效率
内联函数相较于宏可以进行调试,代码的安全性更高
缺点:内联函数会在调用时展开,有可能造成代码膨胀
注意:内联函数的声明和定义不能分开,因为编译器如果将其当成内联函数进行处理,会在定位文件的使用位置展开,相当于没有该函数,那么在其他文件中使用该内联函数会出现链接错误

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值