这里有一个概念上简单的答案: 三种类型的 int * N._ t 的宽度必须 > = N. intN _ t 有 没错 N.位,int _ leastN _ t 是 至少(最窄)这样的类型,int _ fastN _ t 是 最快的这样的类型。
例如,在具有8位字节和32位快速寄存器的机器上,int8 _ t 和 int _ least8 _ t 别名为有符号 char,但 int _ fast8 _ t 别名为 int32 _ t。然而,如果实现选择定义它们,那么 int _ least24 _ t 和 int _ fast24 _ t 都将别名为 int32 _ t,而 int24 _ t 没有定义。
编辑: 正如 Technophile 在下面指出的,快速类型的真正问题是内存,而不是寄存器(通常,对寄存器的低阶位的操作可以像对整个寄存器一样快)。例如,在内存中写入 int8 _ t 可能需要加载包含它的32位字,只修改字节,然后再写回来,而如果它存储在一个32位字中,则可以不读取它。