【发布时间】:2016-04-03 12:07:32
【问题描述】:
尝试在 32 位机器上用 C++ 打印long。我得到了一个意外的输出。
从此代码:
long n = 5330111323L;
printf("n = %ld\n", n);
printf("can print? %s\n", LONG_MAX < 5330111323L ? "yes" : "NO");
printf("LONG_MAX = %ld\n", LONG_MAX);
我明白了:
C# 输出很好。
这个:
long n = 5330111323L;
Console.WriteLine(n);
打印:
5330111323
两者都使用 32 位编译器。为什么我会得到这个 C++ 输出?
【问题讨论】:
-
你觉得5330111323和2147483647哪个更大?
标签: c# c++ mingw long-integer 32-bit