函数的调用行为
来源:互联网 发布:js引用 编辑:程序博客网 时间:2024/05/01 15:09
活动记录
活动记录是函数调用时用于记录一系列相关信息的记录
活动记录是在栈中分配空间的。
- 临时变量域:用来存放临时变量的值,如k++作为参数时,存放它的中间结果。
- 局部变量域:用来存放函数本次执行中的局部变量 。
- 机器状态域:用来保存调用函数之前有关机器状态的信息,包括各种寄存器的当前值和返回地址等;
- 实参数域:用于存放函数的实参信息
- 返回值域:为调用者函数存放返回值
调用约定
当一个函数被调用时,参数会传递给被调用的函数,而返回值会被返回给调用函数。函数的调用约定就是描述参数是怎么传递到栈空间的,以及栈空间由谁维护。
参数传递顺序: 有下面几种
- 从右到左依次入栈:__stdcall,__cdecl,__thiscall
- 从左到右依次入栈:__pascal,__fastcall
在函数前加上上面的名称,就可以指定调用约定,例如
__stdcall void f(){}
调用堆栈清理: 有下面两种
- 调用者清除栈。
- 被调用函数返回后清除栈
小结
函数调用是C语言的核心机制。
活动记录中保存了函数调用以及返回所需要的一切信息。
调用约定是调用者和被调用者之间的调用协议,常用于不同开发者编写的库函数之间。不同开发者使用的语言可能不同,就需要采用相同的调用约定。
0 0
- 函数的调用行为
- 函数调用行为
- 【C语言复习(三十)】函数的调用行为
- java的调用方法行为
- 关于 接口与对象指针对成员函数的调用时的汇编执行行为分析
- 重构系列之对象行为的重构:《重构》简化函数调用
- 利用CSS的行为调用HTC
- DAY03 构造函数及调用、继承行为,接口
- C++赋值操作符无重载情况下可能调用构造函数实现赋值的默认行为
- 关于构造函数中多态方法的行为
- ubuntu下signal()函数的行为
- 结构-行为-样式-有趣的函数
- 对象的行为(构造函数、方法)
- behaviors()行为调用
- 专题6-3.函数调用行为, 递归函数(国嵌C语言视频)
- 主题六 函数(C语言核心)----36.函数调用行为
- 直接调用函数的函数
- printf函数行为探究
- 欢迎使用CSDN-markdown编辑器
- IO流_字符缓冲流复制文本文件案例1
- MVP+Dagger2+Rxjava+Retrofit+GreenDao 开发的小应用,包含新闻、图片、视频3个大模块,代码封装良好
- HDU-5178
- centos6.5安装配置redis3.0
- 函数的调用行为
- UIAlertController的进化
- JSP文件的各个路径的获取
- win10装SCIATRAN辐射传输模式
- zone_reclaimable
- Ubuntu环境下SSH的安装使用以及使用证书免密码登录ssh服务器
- Java容器(七):TreeMap源码分析
- 区间[A,B]与N互素的元素个数 [容斥][Eratosthenes筛法]
- 简单java扑克牌小程序(发牌,三个玩家,不含大小王)