asuerhao's Blog

如果有什么做的不到的地方请尽管留言, 我会改进的 : )

C函数与汇编

asuerhao posted @ 2012年4月04日 21:48 in 积累 with tags c 函数 汇编 , 1539 阅读

C语言是如何实现函数调用的?

  有人讲的比我好:  http://learn.akae.cn/media/ch19s01.html.

大致的机理为:

  C语言的函数调用是利用栈实现的. 当前栈帧中保存中当前运行的函数所需的数据. 当程序中发生函数调用时, 要将参数(给子函数使用)和当前程序的位置(以便子函数返回)存到栈中, 然后重新调整栈顶与栈底(为子函数分配存储空间), 以保存子函数运行所需数据. 当子函数返回时, 要再次调整栈顶与栈底为原来的栈顶与栈底(回收子函数的存储空间).

Avatar_small
依云 说:
2012年4月04日 22:54

堆栈->栈,谢谢。

Avatar_small
asuerhao 说:
2012年4月04日 22:58

@依云: 已改, 谢谢!

Avatar_small
Mike 说:
2012年9月25日 22:12

『当前栈中』棧幀?