2013-03-11 80 views
0

通常我更喜歡完全拆分聲明和定義,因此,我傾向於定義內聯方法中的.cpp
我只是希望鏈接優化程序在內聯方法中使用內聯方法時編制單位。內聯公共接口的方法

我的問題是:

  1. 難道真的氣餒在CPP內聯,如果我知道在鏈接時我的鏈接器支持在線?
  2. 我應該怎麼做,如果我想從另一個調用庫函數?(可以嗎?)
+0

相關:http://stackoverflow.com/questions/5057021/why-are-c-inline-functions-in-the-header和http://stackoverflow.com/questions/3540931/inline-functions-in -C – 2013-03-11 21:13:52

回答

4

如果你標記你的函數inline那麼你提供在每個翻譯單元中的定義它被使用。這與將定義放入單個.cpp不兼容。

如果你想在一個單一的.cpp放置一個函數,你不應該聲明它inline。如果你想要內聯函數,你必須依靠你的工具鏈,將適當的優化標誌傳遞給你的編譯器和鏈接器。你的工具鏈將實際內聯的哪些功能是你必須嘗試的功能。

根據您的工具鏈,您可能可以使用特定於實現的屬性來修飾您的函數,以指示您希望內聯哪些函數。