内联函数,总是n + 1个代码副本,其中'n'是调用次数

时间:2014-01-21 17:27:34

标签: c++ c optimization inline

当我声明内联函数时,它被复制并粘贴到调用它的位置,还有一个副本,我们可以跳转到。有可能阻止它吗?我的意思是只在被调用的地方有功能代码。不再是可赎回的副本。

PS。我知道内联函数并不总是“内联”。

2 个答案:

答案 0 :(得分:4)

如果你没有显式或隐式地获取它的地址,那么编译器就没有理由生成它。

答案 1 :(得分:2)

如果将函数定义为static inline(C99),则不会生成任何可调用版本。事实上,如果您根本不调用该函数,那么它将不会包含在您的目标文件中。