为什么并非所有函数都内联?

时间:2013-10-05 20:45:05

标签: c++ inline

如果内联函数的实现被放置在代码中调用函数的任何地方,并且这节省了两个分支步骤,那么程序员是否应该尝试内联每个函数,如果他们不必担心空间? / p>

更具体地说,我认为立即执行函数体总是比分支到函数体,执行函数体以及分支回函数调用的位置更快。

3 个答案:

答案 0 :(得分:5)

  

程序员不应该尝试内联每个函数,如果他们不这样做   不得不担心空间?

是。但在大多数现实世界的应用程序中,您必须担心空间问题。占用较少空间的程序和数据(一般而言)更快。阅读cache misses。当然,执行较少指令的程序(一般而言)也更快,这就是我们内联的原因。这两个想法存在直接冲突,因此必须达到平衡。通常最好将此平衡动作留给编译器。

答案 1 :(得分:0)

没有。功能的一个好处是使代码可重用。如果程序员内联他的所有功能,那么代码库就会增加,维护也会增加。如果编译器为了速度或效率而选择稍后内联函数,则不会影响维护方面,并保留原始代码的可读性。

答案 2 :(得分:0)

添加到上面的注释中,内联函数在程序开始时加载,这让你知道如果所有内联然后加载在编译器上变得很重,而在程序员端会变坏