在-pedantic-errors下分配64位值

时间:2015-12-06 10:52:27

标签: c++ 32bit-64bit

我最近尝试使用Project Euler problem 3解决codepad.org,我注意到一些奇怪的事 由于键盘使用了标记-pedantic-errors,我无法使用long long来存储我的号码,但我注意到我仍然可以使用uint64_t

这里开始我的问题。
虽然我可以将变量定义为uint64_t,但我没有很好的方法来实际分配值 我可以用丑陋的方式分配价值(避开你的眼睛):

// This is very ugly code:
uint64_t s = 600851;
s *= 1000000;
s += 475143;

cout << "s = " << s << endl;

但是我不能这么做直接的任务:

// This gives me errors:
uint64_t s = 600851475143ULL;

可能首先将右侧解释为long long

那么在这种情况下如何实际分配工作呢? 它只是一个漏洞,我可以访问该类型,但不分配任何东西?
如果是这样的话会有什么好的解决方法吗?

0 个答案:

没有答案