您的位置:首页 > 其它

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

2016-07-26 22:49 274 查看
在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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息