长整型和整形数据运算的不同

在32位系统中,long long类型为8个字节,int为4个字节,除了表面上看各自存储的数据大小不同,还有什么不同呢?


假设一个函数,它的形参类型为long long如下:

test(long long a)

获取形参a的汇编指令如下:

movl 8(%edp),%ebx
movl 12(%edp),%eax

这两条汇编指令就是获取形参a的值,movl 8(%edp),%ebx 指令把a的低32位存入%ebx中,movl 12(%edp),%eax 指令高32位存入%eax中


下面我们来接着看看类型为int的形参情况

test(int a)

movl 8(%edp),%ebx

获取形参a的值拷贝只需要一条汇编指令,所以在32位系统中使用int型性能比long long好,在能使用int类型的情况下就不要使用long long 除非数据大到必须使用long long

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值