函数的系统开销并不小:内联函数产生的原因
来源:互联网 发布:医院在用的数据库产品 编辑:程序博客网 时间:2024/05/15 23:53
有时不由得怀疑为什么会有内联函数呢?
直到事实发现才知道原来内联真的很节约内在。因为在调用函数时会有一些诸如保存当前地址等的系统开销。不要小看。
一段小的子函数,系统开销相对于子函数本身却大多了。
#include <iostream>using namespace std;int* sum(){int a=10;//栈中值,退出子函数,a消亡,但对应内存值却在 int *q=&a;return q;}int main(int argc, char *argv[]){int a=3,*p;p=sum();int g[63]={0};//子函数完成后,弹出栈,这时改数组直到p把子函数中的a值“覆盖” cout<<*p<<endl;return 0;}
当数组g[N]中N值很小时,改变不了结果10的输出,我们一直改变它,直到刚好把10改写成0,说明了原函数到先前子函数在栈中a处的位置。
这段距离包含了系统开销,当我们改到63时结果是10,但64时就是0了。说明距离是63个int长度。由此可以看到:
子函数并不大,但系统开销却不可小看。
内联函数就是为了节约这个不可小看的“系统开销”而引申出来的解决节约内存的办法。
- 函数的系统开销并不小:内联函数产生的原因
- 内联函数inline,无比节省开销的
- 内联函数并不总是内联
- 函数调用的开销
- 函数调用的开销
- 函数调用的开销
- 函数调用的开销
- 内联函数不能设置断点的原因
- inline内联函数的使用及原因
- inline内联函数不能为virtual虚函数的原因
- 函数调用时的开销
- 随机数产生函数总是产生相同随机数的原因
- QWidget的六个刷新函数(居然有QWidget::erase函数,且并不产生绘制事件)
- 内联函数的思考
- 内联函数的作用
- c++的内联函数
- 内联函数的好处
- 内联函数的作用
- TCP/IP详解(1)概述,第一章笔记整理
- 在从1到n的正数中1出现的次数
- mini2440(1) mini2440开发板
- 委托
- 网络转载的小波框架总结
- 函数的系统开销并不小:内联函数产生的原因
- splay 常数优化
- verilog中reg和wire类型的区别和用法
- Android基础类之BaseAdapter
- 赫夫曼树及一些延伸
- jquery.ui.accordion的修改(支持展开多个)
- 模拟退火算法
- Android的通讯录同步
- hdu 3576 Elevators in Jiayuan Students' Apartment