内联函数的定义很简单,就是在一般的函数定义前面加上inline关键字。理解内联函数要把握的几点:
1、函数的一大功能就是代码重用。把某些代码写成函数,就是为了重用这个目的。一般将较短小的代码写成内联函数。
2、但是将代码写成函数有个缺点,就是开销增大了。几条顺序执行的代码如果封成函数,那么需要增加额外开销如:用前要先保存寄存器,并在返回时恢复;复制实参;程序还必须转向一个新位置执行。
3、把函数写成内联函数,可以拥有第一点的优势并且避免第二点的缺点。因为内联函数不是函数调用,内联函数的意思是在调用点上内联地调用,是直接用内联函数里的代码替换函数调用的代码。例如:
cout << shorterString(s1, s2) << endl; //(shorterString()函数是一个内联函数)
相当于:
cout << (s1.size() < s2.size() ? s1 : s2)
<< endl;
4、内联函数需要在头文件里定义,因为它需要被编译器看见。这是内联函数与函数不一样的另外一个地方。