函数参数如何在C中传递?

Alc*_*ott 5 c arguments calling-convention

我所知道的关于C如何传递值的机制的唯一事情是它是通过寄存器或堆栈完成的.

注册还是堆叠?究竟怎么样?

Mys*_*ial 5

都.这些惯例因平台而异.

在x86上,值通常由堆栈传递.在x64上,首选寄存器是首选.

在所有情况下,如果您有太多参数,则必须通过堆栈传递一些参数.

请参阅x86调用约定

  • 还应注意,即使对于给定的体系结构,调用约定也存在差异.比较`cdecl`(在Linux中使用?)和`stdcall`(WinAPI?). (2认同)