2010-12-08 142 views

回答

0

不,他们不会。内联是分析树上的一项操作,需要访问内联代码的主机和捐助源的源代码。

静态库在您使用它们时已经从源代码编译为二进制文件,因此内联不会发生。


但是,未内联的代码也是“正确的”,并且功能正常(假设它已被编译到静态库中)。

+0

嗨亚历克斯,这也是我的怀疑。你能提供一些你的说法吗?一般来说,我应该在哪里查找这些信息? – Andrew 2010-12-08 16:54:29

0

那么,因为为了尝试调用内联函数,它的声明必须在调用站点可见。如果是inline,那么编译器会将其内联或完全忽略该请求。

如果您想知道在链接到最终产品时,库中内联的非内联函数是否可以内联......这取决于实现,并假设它已经具备了LTO因为它是向图书馆提供的),它可能能够再次将它们内联。尽管......可能会被要求引导实现包括定义,即使它们已经被内联了,但都取决于实现。

http://crazyeddiecpp.blogspot.com/2010/12/inline-functions-and-you.html