2013-03-11 81 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。如果你想要内联函数,你必须依靠你的工具链,将适当的优化标志传递给你的编译器和链接器。你的工具链将实际内联的哪些功能是你必须尝试的功能。

根据您的工具链,您可能可以使用特定于实现的属性来修饰您的函数,以指示您希望内联哪些函数。