1.基本用法
要使用内联函数时,必须遵循如下规则:
在函数声明前加上关键字inline,或着在函数定义前加上关键字inline,二者取其一即可。
inline int max(int a, int b); // 取其一即可 inline int max(int a, int b){ // 取其一即可 return a > b ? a : b; }
另外一种做法是,直接省略原型,将函数实现写在函数声明的位置(即将函数头和函数代码,放在提供原型的地方),也可以实现inline的效果。
//int max(int a, int b); //省略 int max(int a, int b){ return a > b ? a : b; }
两种方法,都可以实现内联函数inline。
2.作用
内联函数的基本作用是,以空间换时间,通过牺牲内存大小,换取更高的运行速率。
调用函数时,程序首先存储该指令的内存地址,然后将当前函数的参数复制到堆栈,之后再跳转至标记函数起点位置执行代码,结束后再跳转回原来的位置。这一系列操作,意味着每次调用函数都需要一定的资源开销。
内联函数提供另一种解决方案,有点类似于宏定义,通过直接将内涵函数的代码,直接嵌入被调用的位置,来避免调用函数而产生的额外开销。
3.注意事项
内联函数,无法实现递归调用。
宏再某种程度上,实现和内联函数相同的功能时,可以考虑改成内联函数。因为宏可能因为格式问题导致运行顺序出现异常,而内联函数不存在这种问题。
标签:函数,05,int,max,C++,调用函数,内联,inline From: https://www.cnblogs.com/wyqmx/p/17599050.html