从被调用的时间到它返回的时间,在C中调用的函数会发生什么?

Sha*_*ash 2 c function

每当我读到C中的程序执行时,它对函数执行的说法就越少.我仍然试图找出当程序从另一个函数调用到它返回的时间开始执行时函数会发生什么?函数参数如何存储在内存中?

unw*_*ind 9

那没有具体说明; 这取决于实施.正如Keith Thompson指出的那样,它甚至不必告诉你它是如何工作的.:)

一些实现将所有参数放在堆栈上,一些将使用寄存器,并且许多实现使用混合(在寄存器中传递的前n个参数,以及它们进入堆栈).

但是函数本身只是代码,它是只读的,并且在执行期间没有太多"发生".

  • 严格地说,它没有指定,没有实现定义.区别在于实现不需要记录它. (2认同)