为什么我会出现"常数太大"的错误?

fis*_*ish 1 c++ visual-c++

我是Windows开发的新手,我很困惑.

当我使用Visual C++ 2010编译此代码时,我得到一个"常量太大"的错误.为什么我会收到此错误,如何解决?

谢谢!

int _tmain(int argc, _TCHAR* argv[])
{
    unsigned long long foo = 142385141589604466688ULL;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 9

你所表达的数字序列大约需要67位 - 也许你的"无符号长long"类型只需要(!)64位,你的数字序列不适合它等等.

如果您经常需要处理不适合64位的整数,您可能需要查看能够顺利支持它们的语言,例如Python(可能还有gmpy ;-).或者,放弃语言支持并选择合适的库,例如GMPMPIR! - )