windows xp和windows 7中的long long int

时间:2013-01-21 18:09:30

标签: c

我有一个程序,在里面我把Q = pow(2.0,32) 当我在具有32位系统的windows7的计算机上运行该程序时,它将工作 但是当我将它复制到具有64位系统windowsxp的计算机时,它会给我Q = 0 问题是什么? Q是long long int

2 个答案:

答案 0 :(得分:1)

你如何知道 Q是0?

如果您使用printf("%lld\n", Q);之类的内容进行打印,则可能是您在Microsoft的C运行时库中遇到了缺陷。微软对C99的支持很少,而且他们可能不支持"%lld"格式(我很惊讶他们的编译器允许long long int)。< / p>

除了打印Q的值之外,请尝试 Q与0进行比较:

printf("Q = %lld\n", Q);
if (Q == 0) {
    puts("Q == 0");
}
else {
    puts("Q != 0");
}

请参阅Microsoft的文档,了解其支持的打印long long int值的方法。

答案 1 :(得分: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; 
    }