unsigned long long
类型并不像我预期的那样工作。这是我的简单代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
unsigned long long a = 2932306814;
printf("a = %d\n", a);
return EXIT_SUCCESS;
}
我得到以下输出:
a = -1362660482
已使用的gcc
作为mingw的一部分安装,版本为4.8.1。
答案 0 :(得分:3)
您没有正确打印该号码。 %d
说明符适用于int
。使用%llu
的说明符unsigned long long
。
更改为:
printf("a = %llu\n", a);