《C专家编程》随笔7:参数传递

本文探讨了函数调用中参数的传递顺序及方式,指出这些特性会因编译器的不同而有所变化。文中提到,在未优化的情况下,参数可能通过寄存器或栈来传递;而在优化情况下,传递方式依然遵循这一原则。对于C++而言,前两个参数通常使用寄存器,其余参数则通过栈传递。此外,64位系统下存在不同的传递机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是别人的一些讨论:

https://bbs.youkuaiyun.com/topics/350231360

这个帖子里说道:

函数调用的时候,参数的传递顺序(从左向右还是从右向左)和方式(用栈传递还是用寄存器传递)根据编译器的不同而不同。
传递顺序:从右向左,从左向右
传递方式:未优化的场合,可能使用寄存器或者栈,优化的场合也是如此,C++又有些不同,可能头2个参数用寄存器,后面的参数用栈,64位又有不同。

总体来说:只能以当前的反汇编结果为准,但是反汇编只是对机器码的解释,并不一定就解释的完全没有问题,虽然反汇编后的代码能得到和机器指令同样的运行结果。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值