格式化 unsigned long long 会导致整数溢出
Formatting of an unsigned long long causes an integer overflow
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);
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);