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位整数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)