gpt4 book ai didi

c++ - 64位减法结果转32位整数

转载 作者:太空狗 更新时间:2023-10-29 19:46:43 26 4
gpt4 key购买 nike

有一个名为“Compare”的现有函数,它是

int compare(void* A, void* B) { return (int)A - (int)B; }

我知道这是一种残忍的做法,但我没有编写那段代码,而且它已经在很多地方使用了。但是此代码在 64 位下生成编译错误,因为 void* 不再是 32 位,所以我将代码修复为以下内容。

int compare(void* A, void* B) { return (long long)A - (long long)B; }

在当前的 64 位 Linux 架构下,此函数返回错误结果的可能性有多大?即,两个虚拟地址相隔超过 0x7FFFFFFF 的可能性有多大?

最佳答案

我觉得你想要

int compare(void* A, void* B) { return (A > B) - (A < B); }

关于c++ - 64位减法结果转32位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com