如何检查内联是否发生

Abr*_*ile 3 c c++ gcc

我想inline在我的项目中大量使用以加快性能.

据我所知,编译器可能内联或不应用; 这取决于编译器.

我不清楚我能做些什么才能使这成为可能,但在朝着这个方向发展之前,你是否知道一种方法来检查输出二进制中是否真的发生了inlinining?

Pau*_*l R 7

用于gcc -Winline在未内联内联函数时获取警告.

使用__attribute__ ((always_inline))强制函数内联.

话虽如此,但如果你不明智地使用内联,请注意你可以搞砸性能,编译时间并获得巨大的代码膨胀.


Bo *_*son 7

如果您使用的是MS编译器,则可能需要启用警告C4710以获取未内联函数的警告.


Gra*_*and 6

使用该gcc -S选项生成汇编程序输出,然后在您喜欢的文本编辑器中检查输出.

但是,编译器通常比内联更好地判断内联实际上会提高性能.不要太急于强迫它; 分析您的代码,看看内联实际上是否更快.