【发布时间】:2011-01-24 22:25:34
【问题描述】:
#include <stdio.h>
int main(void)
{
long long x = test();
printf("%lld\n", x);
return 1;
}
long long test()
{
return 1111111111111111111;
}
输出为 734294471 。如果我用数字替换对test() 的调用,则输出与我预期的一样。我使用调试器检查了 x 的值,它没有设置为函数返回的值。出了什么问题?
我正在使用带有 Visual C++ 编译器的 Visual Studio 2010。
【问题讨论】:
-
您的 IDE 与此类问题无关,
<stdio.h>不是 C++ 标头 - 如果出于某种原因您需要在 C++ 代码中使用 C 风格的 IO 库,#include <cstdio>而是。 -
@Karl 我提到了 IDE,因为它可能会影响编译器设置。
-
很好的问题,它简要而清晰地指出了我遇到的问题。我很惊讶它没有得到更多的支持。
标签: c++ c visual-c++ long-long