2.1 我如何決定使用那種整數類型?

如果需要大數值 (大於 32,767 或小於 -32,767), 使用 long 型。 否則, 如果空間很重要 (如有大數組或很多結構), 使用 short 型。 除此之外, 就使用 int 型。如果嚴格定義的溢出特徵很重要而負值無關緊 要, 或者你希望在操作二進制位和字節時避免符號擴展的問題, 請使用對應的 無符號類型。但是, 要注意在表達式中混用有符號和無符號值的情況。

儘管字符類型 (尤其是無符號字符型) 可以當成 ``小'' 整型使用, 但由於不可 預知的符號擴展和代碼增大有時這樣做可能得不償失。 使用無符號字符型有所幫助; 類似的問題參見問題 12.1

在選擇浮點型和雙精度浮點型時也有類似的權衡。但如果一個變量的指針必 須為特定的類型時, 以上規則不再適用。

如果因為某種原因你需要聲明一個有嚴格大小的變量, 確保象 C99 的 <inttypes.h> 那樣用某種適當的  typedef 封裝這種選擇。 通常, 這樣做唯一的 好原因是試圖符合某種外部強加的存儲方案, 請參見問題 20.3

如果你需要操作超過 C 的內置類型支持的超大變量, 請參見問題 18.17

參考資料: [K&R1, Sec. 2.2 p. 34]; [K&R2, Sec. 2.2 p. 36, Sec. A4.2 pp. 195-6, Sec. B11 p. 257]; [ISO, Sec. 5.2.4.2.1, Sec. 6.1.2.5]; [H&S, Secs. 5.1,5.2 pp. 110-114]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)