因此,关键字“inline”将导致调用被替换为正确的函数体吗?
所以我猜这意味着我们完全跳过了通话?就像我们查看.asm文件一样,找不到 call 指令吗?
最佳答案
关键字inline
具有误导性,对于实际的内联而言,它既不必要也不充分。它所做的一切:告诉链接器允许该函数的多个定义,这意味着您可以将该函数放在 header 中。完成后,编译器将有更好的内联机会,因为在更多地方可以看到函数体。在现代系统中,如果它们使用整个代码优化就不再重要。
编译器有机会内联后,就必须确定它是否对您要求它进行的任何优化(例如,针对速度进行优化)是否有益。
如果编译器决定内联,那么您所说的.asm文件是正确的-无需调用该函数。
关于c++ - C++中的 “inline”关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62924402/