2012-05-22 63 views
1

可能重複:
What does the 「L」 mean at the end of an integer literal?一個數字的末尾L是做什麼的?

例如

int one = 20; 
int two = 20L; 
cout << "one: " << one << " two: " << two << endl; 
cout << "one: " << sizeof(one) << " two: " << sizeof(two) << endl; 

輸出20然後4兩次兩次。

+0

我同意在發佈之前的搜索,但我不贊同它在相關鏈接中。 – Celeritas

+0

它不在相關鏈接中,因爲我將它移動到「鏈接」部分。 –

+0

但是沒有那麼不同,因爲它是一個宏,當聲明一個變量時,你指定'long'類型? – Celeritas

回答

5

在這種情況下,L什麼都不做。

L後數字給出恆定的long類型,但因爲在這種情況下常數被立即分配給一個int變量沒有任何改變。

+0

你可以舉一個例子,它確實做了些什麼? – Celeritas

0

L表示long沒有別的親愛....

0

大號告訴編譯器的數量是Long類型。 Long是一個大於或等於int大小的帶符號類型。在大多數現代編譯器中,這意味着該數字將佔用4個字節的內存。在大多數編譯器中,這恰好與int相同,所以在這種情況下不會產生影響。

+0

long是使用gcc在mac os上簽名的,long是8字節長。 – Adrien

+0

你是對的。不知道我在想什麼。固定。 –

0

看到this鏈接 它說:

字面常量(通常被稱爲文字或常量)是不變量,它們的值由他們交涉暗示。

基:十進制

例如:1L

描述: 任何十進制數(數字0-9)不與開頭的0(零)和其次是L或l

相關問題