2010-04-08 304 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到恆定。)