2010-04-08 303 views
12

我试图初始化一个unsigned long long int类型。但是编译器抛出一个错误如何初始化一个无符号的long long类型?

"error: integer constant is too large for "long" type ".

初始化如下所示:

unsigned long long temp = 1298307964911120440; 

可有人请让我知道是什么问题,并提出了相同的解决方案。

回答

11

首先,确保您的编译器支持long long类型。其次,为该号码添加“ULL”后缀。

+1

只是为了澄清,'无符号长long'必须是至少64位。 – GManNickG 2010-04-08 06:13:40

+5

@GMan,无符号long long在C++ 0x正式成为ISO C++ 2011之前不需要任何东西。假设头文件和类型都存在,使用来自的uint64_t将更加便于携带。 – 2010-04-08 06:17:36

+1

@Michael:我认为我们谈论的是未来是隐含的,因为杰里说“确保你的编译器支持long long类型”。无论如何,我同意如果我们想强制一个数字正好是64位,那会更好,但是如果我们只想要一个大数量的保证成为至少64位,无符号长整型长'会更好。 – GManNickG 2010-04-08 06:30:51

5

Q后面添加你的文字值:如何初始化一个unsigned long long类型?

答:用unsigned long long常量!

(添加后缀ULL到恒定。)