【发布时间】:2014-04-09 17:22:43
【问题描述】:
我不明白“内联函数”的意义。 我知道它们比普通函数更快(例如宏),但为什么不是每个函数都是“内联函数”?
【问题讨论】:
标签: objective-c function inline
我不明白“内联函数”的意义。 我知道它们比普通函数更快(例如宏),但为什么不是每个函数都是“内联函数”?
【问题讨论】:
标签: objective-c function inline
从代码中多个位置调用的函数可以内联,但这种(非常轻微的)性能提升的代价是代码大小。通常认为,添加少量指令来进行子程序调用比内联函数消耗额外空间要好。
从一个地方调用的函数可以被内联而不需要额外的开销。
【讨论】:
代码大小 - 如果从多个位置调用函数,到处复制代码会迅速导致整体代码大小显着增长。
代码大小 - 无限!直接或间接地内联递归代码是根本不可能的。
【讨论】: