概述
本文主要从进程栈空间的层面复习一下C语言中函数调用的具体过程,以加深对一些基础知识的理解。
先看一个最简单的程序:
/*test.c*/
#include
int foo1(int m,int n,int p)
{
int x = m + n + p;
return x;
}
int main(int argc,char** argv)
{
int x,y,z,result;
x=11;
y=22;
z=33;
result = foo1(x,y,z);
printf("result=%dn",result);
return 0;
}
主函数main里定义了4个局部变量,然后调用同文件里的foo1()函数。
4个局部变量毫无疑问都在进程的栈空间上,当进程运行起来后我们逐步了解一下main函数里是如何基于
栈实现了对foo1()的调用过程,而foo1()又是怎么返回到main函数里的。为了便于观察的粒度更细致一些,
我们对test.c生成的汇编代码进行调试。如下:
.file "test.c"
.text
.globl foo1
.type foo1, @function
foo1:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl 12(%ebp), %eax
最后
以上就是超级超短裙为你收集整理的c语言调用函数的作用,深入理解C语言的函数调用过程的全部内容,希望文章能够帮你解决c语言调用函数的作用,深入理解C语言的函数调用过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复