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

Kac*_*acy 1 c++ inline

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

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

Ben*_*ley 5

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

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