c – 64位减法结果为32位整数

c – 64位减法结果为32位整数,第1张

概述有一个名为“比较”的现有功能,即 int compare(void* A, void* B) { return (int)A - (int)B; } 我知道这是一个残暴的做法,但我没有编写那段代码,而且它已经在许多地方使用了.但是这段代码在64位下产生了编译错误,因为void *不再是32位,所以我将代码修改为以下内容. int compare(void* A, void* B) { return 有一个名为“比较”的现有功能,即

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位整数全部内容,希望文章能够帮你解决c – 64位减法结果为32位整数所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存