2013-04-29 103 views
7

在c中unsigned short int和unsigned short decleration之間是否有區別,如果是這樣,請問它是什麼?我試着在網上尋找,但找不到任何有價值的東西。unsigned short int和unsigned short之間的區別

unsigned short int x1; 
unsigned short x2; 

最後,如果有差異,我該怎麼把它們分別給彼此?

+1

沒有區別。 – Daniel 2013-04-29 16:31:26

回答

10

C11 [PDF](不相關部分省略)(重點煤礦):

6.7.2.2:

至少一個類型說明應在聲明指定在每個聲明, 並且在給予每個結構聲明和類型名稱中的說明符限定符列表。 類型說明符的每個列表應該是以下多個集合中的一個(用逗號分隔,當 每個項目有多個多集時);類型說明符可能以任何順序出現,可能與其他聲明說明符混合使用 。

  • ...
  • shortsigned shortshort int,或者signed short int
  • unsigned short,或unsigned short int
  • ...

6.7.2.5:

每個逗號分隔的多集的指定相同類型 ...

+0

重要的是要注意,它們相同的事實並不能保證它們的大小。它們可以是2個字節,4個字節,100個字節,不管。只要它們不超過「int」。 – Daniel 2013-04-29 16:33:09

+2

如果您想鏈接到更方便的C11在線副本,請訪問:http:// port70。net /〜nsz/c/c11/n1570.html – 2013-04-29 16:33:33

+0

我會在評論中保留鏈接,但會在答案中保留PDF的鏈接。關於pdf的好處是您可以下載並將其放置在桌面上,並且更易於訪問。雖然有良好的聯繫,但對報價來說絕對更好。 – Shahbaz 2013-04-29 16:49:15

3

只需使用short是一種簡短的(無雙關語意圖的)寫作方式short int。只需long就是long int的簡稱。

2

它們是同義詞。如果你的編譯器做了與他們不同的事情,那就是壞了。

-2

沒有區別。試試sizeof運營商:

main() 
{ 
    unsigned short int x1; 
    unsigned short x2; 

    printf("%d/%d\n", sizeof x1, sizeof x2); 
} 
+6

就像我在另一個評論中所說:即使它們是相同的(並且你的回答是正確的),你也不能提供一個例子來證明某件事。 11是素數,但並不能使所有奇數都爲素數。順便說一句,'int'和'unsigned int'也具有相同的大小,但它們不相同。 – Shahbaz 2013-04-29 16:22:14

+0

此外,類型的大小可以在不同的實現之間改變。 – effeffe 2013-04-29 16:52:52

3

兩者沒有差異。

第二個被認爲是一個int並且簡單地被省略。

相關問題