内敛函数和非内联函数有什么区别

来源:百度知道 编辑:UC知道 时间:2024/05/28 13:23:52

如果函数比较简单,而且调用很频繁,将其设为内联函数会将效率提高很多

非内联函数再调用的时候会有一部分系统开销
而内联函数运行时是在调用部分原地展开的,没用调用开销
比如
inline long add(long x, long y){ return x+y; }
int main(){
for(long i = 1000000; i>=0; i--)add(i,i);
}
在运行for函数时是将函数add中的内容移植到for后面,直接在for后面展开的

而效率,如上例,内联函数比非内联函数快很多

推荐用google,baidu搜一下,在csdn上也有很多东西

虽然效率要快,但不是所有的函数都可以设置为内联函数。若函数体过于复杂,编译工具会自动取消函数的内联特性,将函数作为普通函数来对待