运行Windows 64位系统。值看起来就像是 int。
int main()
{
long long_min = LONG_MIN;
long long_max = LONG_MAX;
printf("Minimum value of long: %ld \n", long_min);
printf("Maximim value of long: %ld \n", long_max);
printf("Printing the size of long: %zu\n", sizeof(long_max));
printf("\n----------------------------------\n\n");
return EXIT_SUCCESS;
}
在在线编译器中运行我的程序,它按预期工作。显示那么长的是:
Minimum value of long: -9223372036854775808
Maximim value of long: 9223372036854775807
Printing the size of long: 8
C 标准仅定义这些类型 5.2.4.2.1 的最小
尺寸LONG_MIN | LONG_MAX |
---|---|
-2147483648 | +2147483647 |
所以两个编译器都是正确的。