概述
函数的使用使得相同代码不必多次重写,但会带来额外的开销,函数调用的过程中会有入栈和出栈,这些都会消耗时间。
如果一个函数在程序运行过程中被成千上万次调用,那么这个开销也是不容忽视的,C++中引入了内联函数,直接在函数前面加上inline,在编译过程中直接把函数代码内嵌,避免了运行过程中的函数调用,但会增加程序代码段的空间。可以任务以空间来换取时间。
示例:
inline int foo(int a, int b)
{
return a+b;
}
总结
内联函数优点:程序运行时避免了调用函数入栈,出栈导致的额外开销。
内联函数缺点:编译时直接函数代码内嵌,增加了代码段空间。
一般函数体行数不多(谷歌编程规范明确指出内联函数不超过10行代码),且被频繁调用的函数适合用内联函数。