最佳答案
ISO/IEC9899:2018(C18)在7.20.1.3下说明:
7.20.1.3 Fastest minimum-width integer types
1下列每一种类型都指定一个通常快于 268)的整数类型,以便在至少具有指定宽度的所有整数类型之间进行操作。
Typedef 名称
int_fastN_t
指定宽度至少为 N 的最快有符号整数类型。Typedef 名称uint_fastN_t
指定宽度至少为 N 的最快无符号整数类型。3 The following types are required:
int_fast8_t
,int_fast16_t
,int_fast32_t
,int_fast64_t
,uint_fast8_t
,uint_fast16_t
,uint_fast32_t
,uint_fast64_t
此表单的所有其他类型都是可选的。
268) 不能保证指定类型在所有情况下都是最快的; 如果实现没有明确的理由选择一种类型而不是另一种,它只会选择一些满足有符号性和宽度要求的整数类型。
但是没有说明为什么这些“快速”整数类型更快。
我用 C + + 标记了这个问题,因为快速整数类型在 cstdint
的头文件中的 C + + 17中也是可用的。不幸的是,在 ISO/IEC 14882:2017(C + + 17)中没有关于他们的解释的部分; 我已经在问题的正文中实现了该部分。
信息: 在 C 语言中,它们在 stdint.h
的头文件中声明。