2013-03-19 116 views
6

在下面的函數:C中的'short'數據類型是什麼?

void AddWordData(FILE* dataFile, short word, int* dc) 
{ 
    fprintf(dataFile, "%06o\n", word); 
    ++(*dc); 
} 

功能越來越短的類型。 我在網上做了一些搜索,但發現只有短整型。 當一個函數變得簡短時,它意味着什麼? 它是什麼數據類型?

+2

與short int相同。 – 2013-03-19 17:01:27

+0

另一個問題出現在什麼時候,在寫入「%06o \ n」時究竟打印了什麼 – Yuval 2013-03-19 17:26:20

+2

'%06o \ n' 這將在'octal'中添加6個填充'0'並打印' \ n'')。 – 2013-03-19 17:28:59

回答

14

shortshort int的簡稱。它們是同義詞。 short,short int,signed shortsigned short int都是相同的數據類型。到底有多少位都在short依賴於編譯器和系統,但它需要具有at least 16 bits

任何編譯器符合標準也必須尊重相對於下面的限制值的範圍內的任何特定類型可以接受。請注意,這些是較低的限制:實施可以自由地超過任何或所有這些。還要注意,字符的最小範圍取決於字符是否被認爲是有符號或無符號的。 ...短整型:-32767至+32767。

更多來自Wikipedia

整數類型的實際大小的實施而改變。唯一的保證是long long不小於long,不小於int,不小於short。此外,int應該是目標處理器最有效的整數類型。這允許很大的靈活性:例如,所有類型都可以是64位。然而,只有幾種不同的整數寬度方案(數據模型)是流行的,並且由於數據模型定義了不同程序之間的通信方式,所以在給定的操作系統應用程序接口中使用統一的數據模型[3]。實際上應該注意的是,char通常是8位大小,short通常是16位大小,long通常是32位大小(同樣是無符號字符,無符號短符號和無符號長符號)。例如,對於像90年代的Sun0S 4 Unix,Microsoft MSDOS,現代Linux以及用於嵌入式8位PIC單片機的Microchip MCC18這樣的平臺,情況也是如此。