2

如果内联函数的实现被放置在代码中调用该函数的任何地方,这样可以节省两个分支步骤,如果程序员不必担心空间,他们不应该尝试内联每个函数吗?

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

4

3 回答 3

7

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

是的。但在大多数现实世界的应用程序中,您确实需要担心空间问题。占用空间较小的程序和数据(一般来说)速度更快。阅读有关缓存未命中的信息。当然,执行较少指令的程序也(一般来说)更快,这就是我们内联的原因。这两个想法直接冲突,因此必须达到平衡。通常最好将这种平衡行为留给编译器。

于 2013-10-05T21:36:19.567 回答
0

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

于 2013-10-05T20:48:19.710 回答
0

添加到上面的注释中,内联函数是在程序开始时加载的,这让你知道如果所有内联,那么编译器的负载就会变得很重,这对程序员来说会变得很糟糕

于 2013-10-06T07:04:53.347 回答