如果内联函数的实现被放置在代码中调用函数的任何地方,并且这节省了两个分支步骤,那么程序员是否应该尝试内联每个函数,如果他们不必担心空间? / p>
更具体地说,我认为立即执行函数体总是比分支到函数体,执行函数体以及分支回函数调用的位置更快。
答案 0 :(得分:5)
程序员不应该尝试内联每个函数,如果他们不这样做 不得不担心空间?
是。但在大多数现实世界的应用程序中,您必须担心空间问题。占用较少空间的程序和数据(一般而言)更快。阅读cache misses。当然,执行较少指令的程序(一般而言)也更快,这就是我们内联的原因。这两个想法存在直接冲突,因此必须达到平衡。通常最好将此平衡动作留给编译器。
答案 1 :(得分:0)
没有。功能的一个好处是使代码可重用。如果程序员内联他的所有功能,那么代码库就会增加,维护也会增加。如果编译器为了速度或效率而选择稍后内联函数,则不会影响维护方面,并保留原始代码的可读性。
答案 2 :(得分:0)
添加到上面的注释中,内联函数在程序开始时加载,这让你知道如果所有内联然后加载在编译器上变得很重,而在程序员端会变坏