C语言函数调用模型[调用过程中在堆栈中的出栈、进栈顺序]
来源:互联网 发布:软件团队建设管理方案 编辑:程序博客网 时间:2024/05/11 19:31
本文简要说明C语言中函数调用模型,调用过程中在堆栈中的出栈、进栈顺序,示例代码如下:
#include <stdio.h>#include <stdlib.h>void f2(int b){printf("我也是醉了\n");}void f1(int a){printf("好像有人说:");f2(3);//调用f2}int main(){f1(1);system("pause");return 0;}
运行结果:
好像有人说:我也是醉了请按任意键继续...
进栈过程:
1、操作系统运行状态
2、main函数返回地址
3、main函数的参数(若有)
4、main函数的运行状态
5、调用函数f1,f1的返回地址进栈
6、f1的参数进栈
7、f1运行状态进栈
8、调用函数f2,f2的返回地址进栈
9、f2的参数进栈
调用完毕后,出栈依次逆向9、8、7、6、5、4、3、2、1顺序结束。
参考:传智播客扫地僧老师
0 0
- C语言函数调用模型[调用过程中在堆栈中的出栈、进栈顺序]
- C语言函数堆栈调用过程
- C语言函数调用中堆栈知识
- 关于c语言在函数调用过程中栈布局动态变化的讨论
- 关于c语言在函数调用过程中栈布局动态变化的讨论
- C语言中函数调用过程
- C语言中函数的调用过程
- 运行过程中打印出函数调用栈
- 函数调用过程中,函数参数的入栈顺序
- C语言函数调用参数压栈顺序
- 函数调用过程中堆栈运行情况
- C++ 中函数调用的堆栈过程
- 在C#中调用C语言函数
- 简析C中的函数调用堆栈机制
- c语言函数调用过程
- C语言函数调用过程
- c语言 调用函数过程
- 【C语言】函数运行过程-----栈帧调用
- java基础:位运算用法之保存多选的表单项
- JVM基础 之温绍锦讲Java虚拟机基础
- android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
- Axure教程 axure新手入门基础(1)
- 勤奋是懒惰的元凶
- C语言函数调用模型[调用过程中在堆栈中的出栈、进栈顺序]
- spring mvc controller 获取不到@Value处理方法
- OC-类目延展协议
- Qt环境配置相关问题
- java 项目导入外部 jar包
- replace函数
- VS工程中添加c/c++工程中外部头文件及库的基本步骤
- CentOS-6.3安装配置SVN
- Android FTP ftpClient.listFiles()报java.lang.ClassNotFoundException: Didn't find class "Windows_NT"