printf
使用该函数打印类型值时遇到问题unsigned long long int
我不知道出了什么问题。我在 Windows 7 Professional 64 位上使用 Dev-Cpp 4.9.9.2 和 Visual Studio 2010 Professional(我知道它不是 C 编译器,但无论如何,想尝试一下)。为了显示,我使用%llu
了修饰符(根据How do you printf an unsigned long long int(the format specifier for unsigned long long int)?),但我也尝试了 I64d 没有效果......
首先,我只想打印unsigned long long int
(使用ULONG_MAX
from limits.h
)的最小值和最大值
printf("unsigned long long int: \n%llu to %llu \n\n", 0, ULONG_MAX);
回报:
unsigned long long int: 18446744069414584320 到 1580552164021 (Dev-Cpp)
unsigned long long int: 18446744069414584320 到 0 (Visual Studio)
然后我尝试使用printf
打印两个零
printf("unsigned long long int: \n%llu to %llu \n\n", 0, 0);
回报:
unsigned long long int: 0 到 1580552164021 (Dev-Cpp)
unsigned long long int:0 到 0 (Visual Studio)
还尝试了两个ULONG_MAX
值
printf("unsigned long long int: \n%llu to %llu \n\n", ULONG_MAX, ULONG_MAX);
回报:
unsigned long long int: 18446744073709551615 到 1580552164021 (Dev-Cpp)
unsigned long long int: 18446744073709551615 到 0 (Visual Studio)
为什么它会这样?你能给我解释一下吗?