<分区>
由于内联请求不是强制性的,编译器如何计算哪个函数应该内联?我应该内联什么样的函数?
额外问题。我可以调用内联电话吗?
void func{} // normal (not-inline) function
int main()
{
func(); // normal call
// inline func(); // inline call
return 0;
}
<分区>
由于内联请求不是强制性的,编译器如何计算哪个函数应该内联?我应该内联什么样的函数?
额外问题。我可以调用内联电话吗?
void func{} // normal (not-inline) function
int main()
{
func(); // normal call
// inline func(); // inline call
return 0;
}
最佳答案
当您将一个函数标记为inline
时,您是在通知编译器该函数应该被内联。在(好的)编译器上,这既不能保证它会,也不能保证它不会。
所有内联函数所做的就是用代码主体替换对函数的调用。因此,虽然您不能建议编译器应该在何处内联函数,但您显然可以实际粘贴代码(或使用宏来确保代码保持不变)。但是您需要一个非常好的/奇怪的理由才能这样做。
一般来说,如果您愿意,可以将小函数标记为内联,否则将其留给编译器。
关于c++ - inline的标准是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171902/