我有一个程序,我在里面放了 Q=pow(2.0,32) 当我在一台有 32 位 windows7 系统的计算机上运行这个程序时,它会工作,但是当我把它复制到一台有 64-位系统windowsxp它会给我Q=0 是什么问题?Q 是 long long int
问问题
168 次
2 回答
1
你怎么知道是Q
0?
如果您使用类似的东西打印它printf("%lld\n", Q);
,很可能您遇到了 Microsoft 的 C 运行时库的缺陷。Microsoft 对 C99 的支持很少,而且很可能他们不支持这种"%lld"
格式(我很惊讶他们的编译器允许long long int
)。
除了打印 的值之外,尝试与 0进行比较 :Q
Q
printf("Q = %lld\n", Q);
if (Q == 0) {
puts("Q == 0");
}
else {
puts("Q != 0");
}
并查阅 Microsoft 的文档以了解他们支持的打印long long int
值的方式。
于 2013-01-21T18:47:15.593 回答
0
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include "highgui.h"
int main()
{
long long int Q;
Q=pow(2.0,32);
printf("%lld\n",Q);
printf("%lld\n",LONG_LONG_MAX); return 0;
}
于 2013-01-22T09:55:50.193 回答