2010-12-08 146 views

回答

0

不,他們不會。內聯是分析樹上的一項操作,需要訪問內聯代碼的主機和捐助源的源代碼。

靜態庫在您使用它們時已經從源代碼編譯爲二進制文件,因此內聯不會發生。


但是,未內聯的代碼也是「正確的」,並且功能正常(假設它已被編譯到靜態庫中)。

+0

嗨亞歷克斯,這也是我的懷疑。你能提供一些你的說法嗎?一般來說,我應該在哪裏查找這些信息? – Andrew 2010-12-08 16:54:29

0

那麼,因爲爲了嘗試調用內聯函數,它的聲明必須在調用站點可見。如果是inline,那麼編譯器會將其內聯或完全忽略該請求。

如果您想知道在鏈接到最終產品時,庫中內聯的非內聯函數是否可以內聯......這取決於實現,並假設它已經具備了LTO因爲它是向圖書館提供的),它可能能夠再次將它們內聯。儘管......可能會被要求引導實現包括定義,即使它們已經被內聯了,但都取決於實現。

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