函数调用过程如下:
成都创新互联公司专注于尚义网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供尚义营销型网站建设,尚义网站制作、尚义网页设计、尚义网站官网定制、小程序定制开发服务,打造尚义网络公司原创品牌,更为您提供尚义网站排名全网营销落地服务。
参数入栈
执行流转到函数开始地址
执行函数
函数执行完毕,返回。
平衡堆栈
大致是这样,根据调用约定不同,可能会有稍许差别。
每一个函数调用都会分配函数栈,在栈内进行函数执行过程。调用前,先把返回地址压栈,然后把当前函数的esp指针压栈。
理论上的东西你就多看看书,我给你举个简单的例子来说明一下吧
如果是刚刚学习C语言推荐你看《C程序设计(第二版)》清华大学出版社
作者:谭浩强 这本书讲的很好,适合初学C语言,几乎所有的高校C语言课都是用这本教材的
函数调用举例:
int fun1( int a, int b)
{
if( a b )
return a;
else
return b;
}
void main()
{
int x, y, z;
x = 1;
y = 2;
z = fun1( x, y );
printf( "z=%d\n", z );
}
函数执行结果显示为:
z=2
函数调用就是在编译是把你调用的那段代码编译到一起,参数进行值传递方式。
至于指针那块暂时就不跟你讲了,先集中精力学点儿简单的,呵呵~