当调用一个函数时,程序就会跳转到该函数,函数执行完毕后,程序又返回到原来调用该函数的位置的下一句。
函数的调用也需要花时间,C++中对于功能简单、规模小、使用频繁的函数,可以将其设置为内联函数。
内联函数(inline function)的定义和调用和普通函数相同,但C++对它们的处理方式不一样。如果一个函数被定义为内联函数,在编译过程中,C++将用内联函数程序代码替换对它的调用。
内联函数声明或定义时,将 inline 关键字加在函数的返回类型前面就可以将函数定义为内联函数,格式如下:
inline 返回值类型 函数名(形式参数表)
{
… //函数体
}
//普通函数调用
int square(int x)
{
return x * x;
}
int main()
{
int a = square(3);
int b = square(4);
int c = square(5);
cout << a << "," << b << "," << "," << c << endl;
return 0;
}
通过调试->反汇编可以观察在第9行,第10行,第11行都会调用square函数,在反汇编中call指令为函数调用。(仅作了解)
为了查看内联效果,可以在编译器中进行下面的设置:
通过调试->反汇编,可以观察在第9行,第10行,第11行没有函数调用(没有call指令)。
注意:内联只是向编译器发出的一个请求,编译器可以选择忽略这个请求。
一般来说,内联机制用于优化规模较小,流程简单,频繁调用的函数。
要使用内联函数,必须采取下述措施之一:
●在函数声明前加关键字inline;
●在函数定义前加关键字inline。
本篇完!