什么时候用内联函数

durant 2013-09-25 03:27:33
什么时候用内联函数,什么时候用普通函数

我目前知道是内联函数不需要出入栈,效率上可能会好点,但编译后的text段会大一点

而普通函数刚好和内联函数相反

怎么取舍呢?(只局限于MCU,tms2000级别的处理器)
...全文
340 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
modyaj 2013-09-25
  • 打赏
  • 举报
回复
引用 4 楼 wangjun403 的回复:
[quote=引用 1 楼 modyaj 的回复:] 语句简单 且少 逻辑不复杂 就用内联函数了
这是为什么呢?[/quote] 内联函数通常都是简单而且使用频繁才做内敛的,内联函数在编译的时候有点类似宏一样 做文本替换 用来减少函数调用的开销 但是你想 既然你逻辑复杂 代码有多 到处给你搞复杂的内联 效率还不如直接调用函数的话 即便你是内联的 编译器也会选择直接调用函数的方式(择优)
durant 2013-09-25
  • 打赏
  • 举报
回复
收到,谢谢各位
孟豆豆 2013-09-25
  • 打赏
  • 举报
回复
我认为:语句简单,逻辑简单,且调用频繁……内联之 如 zgce 所说,如果 语句复杂且行数很多,你写inline也是白写,编译器会忽略的
牧童027 2013-09-25
  • 打赏
  • 举报
回复
inline 关键字编译器当然看得见,但是否真正将函数做成内联,这个由编译器决定的。一般代码行数少的函数会被内联,如果函数很复杂且行数较多那就算你写了inline标识也编译器也不定会将函数搞成内联。
durant 2013-09-25
  • 打赏
  • 举报
回复
引用 3 楼 zgce 的回复:
就算你用了inline关键字,编译器也不一定会按内联来办。所以内联这事,只能看着办…………
编译器看不见inline关键字?
durant 2013-09-25
  • 打赏
  • 举报
回复
引用 1 楼 modyaj 的回复:
语句简单 且少 逻辑不复杂 就用内联函数了
这是为什么呢?
牧童027 2013-09-25
  • 打赏
  • 举报
回复
就算你用了inline关键字,编译器也不一定会按内联来办。所以内联这事,只能看着办…………
牧童027 2013-09-25
  • 打赏
  • 举报
回复
同楼上说的一样,语句少的逻辑简单的用内联比较好。
modyaj 2013-09-25
  • 打赏
  • 举报
回复
语句简单 且少 逻辑不复杂 就用内联函数了

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧