不同编译版本在64位操作系统下对寄存器的优化

以下代码在64位系统resease和debug版本中,a和c的地址差是不一样的因为会被优化,一个int在64位操作系统下占4个字节
32系统调用函数是通过栈来传递参数的,a,b,c放在函数的栈中,打印栈的地址。在64位系统中函数传递参数绝大多数不是栈是通过寄存器传输的减少栈的使用,所以64位系统速度快可使用的寄存器数变大。
不打印b的地址根本不会和函数的寄存器发生作用,需要打印地址才会在寄存器中预留空间,在debug会a,b,c都预留了而发布版本只预留了a和c

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值