int64_t是一种精确的 64位宽度,二进制补码表示,没有填充位.这对于例如二进制接口中的工作是有用的; 它的存在是可选的,仅在具有完全宽度的整数类型的体系结构上定义.
int_least64_t是至少 64位宽度的最小可能类型,具有实现定义的表示和填充.如果64位宽度不可用,它可能会更宽,例如,在需要特定最小值范围的算法中工作.
int_fast64_t是一种至少64位宽度的类型.如果可以通过CPU更有效地处理更宽的类型,交换内存占用以提高速度,则可能会更宽.
第一个是非常具体的.如果底层硬件很棘手,那么另外两个给编译器一些摆动空间,即你告诉编译器在哪种条件下你会接受比请求更广泛的类型.