[英]How are function arguments passed in C?
我所知道的关于C如何传递值的机制的唯一事情是它通过寄存器或堆栈来完成。
注册还是堆叠? 究竟怎么样?
通常(某些编译器会按照指出的方式进行不同的操作),以便在堆栈上传递正常的函数调用。 这通常是一系列推送指令,只是将数据放入堆栈。
有一些特殊情况,例如系统调用,其中参数通过汇编指令和寄存器传递。 在硬件情况下,它们通过寄存器或甚至某些中断信号传递,从而写入寄存器。
在具有大量寄存器的架构上,它们通常通过诸如RISC和64位架构之类的寄存器传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.