内联函数和宏定义

内联函数

  • 如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方。
  • 一个函数定义为内联函数,则需要在函数名前面放置关键字 inline
  • 在类定义中的定义的函数都是内联函数,即使没有使用 inline 说明符
  • 内联函数以代码复杂为代价,它以省去函数调用的开销来提高执行效率。
  • 另一方面每一处内联函数的调用都要复制代码,消耗更多的内存空间,因此以下情况不宜使用内联函数:
    • 函数体内的代码比较长,将导致内存消耗代价
    • 函数体内有循环,函数执行时间要比函数调用开销大

内联函数和宏定义的区别

  • 在使用时,宏只做简单字符串替换(编译前)。而内联函数可以进行参数类型检查(编译时),且具有返回值。
  • 内联函数在编译时直接将函数代码嵌入到目标代码中,省去函数调用的开销来提高执行效率,并且进行参数类型检查,具有返回值,可以实现重载。
  • 内联函数有类型检测、语法判断等功能,而宏没有

内联函数适用场景:

  • 使用宏定义的地方都可以使用 inline 函数。
  • 作为类成员接口函数来读写类的私有成员或者保护成员,会提高效率。
posted @   小秦同学在上学  阅读(49)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示