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)