在我的项目上启用-Winline
会产生大量输出,但我并不理解。有谁知道如何使用此输出来找出我的特定函数没有内联的原因?
答案 0 :(得分:3)
好吧,根据我的gcc手册页...
编译器使用各种各样的 启发式判断是否 内联函数。例如, 编译器考虑到了 内联函数的大小和 内联量 目前已经完成了 功能。因此,貌似 来源的微不足道的变化 程序可以导致警告 由-Winline出现或出现 消失。
我不相信你可以强制编译器内联你的函数;它是一个实现细节,甚至可以在编译器更新时更改。此外,只要编译器的选择导致您的函数运行得更快,是否有任何特殊原因让您关心函数是否实际内联?
当然,如果确实想要出于某种原因内联你的函数,你可能只需要使用宏来实现。