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。
最佳答案
您没有正确打印号码。 %d
说明符用于 int
。对 unsigned long long
使用说明符 %llu
。
更改为:
printf("a = %llu\n", a);
关于c - 格式化 unsigned long long 会导致整数溢出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121435/