cpp内联函数

内联函数引入

  • C中对于一些频繁计算的短代码,通常写成宏来避免函数调用开销,但是再C++中会带来一个问题,即:
  • 预处理器不能访问类的成员,因此宏不能作为类的成员函数。
  • c++中内联函数就用用来解决宏函数的缺陷。

C++用inline关键字来解决宏函数缺陷的问题

  • 无论是在内联函数还是定义时都要加上inline关键字
  • inline关键字本质其实跟宏函数一样,即在函数调用的地方直接将函数体复制过去,从而省去函数调用的开销,这是一种空间换时间的思想。
  • 不同之处在于宏是在预处理阶段处理的,而inline内联函数是在编译阶段处理的。
  • C++类中的方法默认都是inline的。

inline是一种建议

  • 内联仅仅是给编译器的一种建议,编译器不一定接受这种建议,即将函数声明为inline,最终不一定能内联,而即便不声明,最终也有可能会inline。
  • 某些情况下编译器不会将函数变成inline的,可以分两种情况,一种是函数体不能太过复杂,比如有很多循环语句,一种是不能对函数取地址,如果取了地址,那么该函数不会被内联。
  • 总而言之,言而总之,知道这个概念就行。
posted @   肖肖凯  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示