什么是内联?

2022-09-01 02:20:09

我指的是这次讨论。我从来没有用C或C++写过任何代码。我没有任何CS背景。然而,我已经作为Java开发人员工作了5年,现在我决定更多地了解CS并进行一些追赶。


答案 1

执行给定的代码段时,每当您调用标准函数时,执行时间都略高于将该函数中包含的代码转储到该函数中。每当函数中包含的整个代码在另一端不可维护时,转储都会进行转储,因为它显然会导致代码的混乱重复。

内联通过允许您将函数声明为内联(至少在C++中)来解决性能和可维护性问题,以便在调用该函数时(而不是让您的应用程序在运行时跳转),内联函数中的代码在编译时注入每次调用给定函数时。

这样做的缺点是 - 如果你内联了你经常调用的大函数 - 你的程序的大小可能会显着增加(最佳实践建议只在小函数上这样做)。


答案 2

http://en.wikipedia.org/wiki/Inlining

在计算中,内联扩展或内联是一种编译器优化,它将函数调用站点替换为被调用方的主体。这种优化可以改善运行时的时间和空间使用,但可能会增加最终程序的大小。


推荐