u_int64_t在32位机器上可用吗?

use*_*267 9 c linux

我想使用u_int64_t变量作为搜索键,

u_int64_t可用的32位机器上?

如果没有,我必须将这个变量分成两个变量?然后作为搜索键,它有点麻烦

这有什么解决方法吗?

use*_*342 10

C标准不保证无符号64位整数类型,但通常在32位机器上以及几乎所有运行Linux的机器上都可用.如果存在,将命名该类型uint64_t(注意少一个下划线)并在<stdint.h>头文件中声明.

  • @DevSolar rubenvb的评论确实说"**至少**64位宽".另一方面,OP很可能只需要64位类型,并且不关心可能支持更宽泛类型的罕见架构而不支持完全64位类型. (3认同)
  • 保证至少 64 位宽的无符号整数在名称“uintleast64_t”(“&lt;stdint.h&gt;”中的 typedef)和“unsigned long long”下可用。 (2认同)

Bar*_*mar 5

是的32位计算机支持64位整数数据类型.

在C89标准中,支持长long(≥64,≥大小的长)类型作为GNU扩展.在C99标准中,对长长度(≥64,≥长度)整数有原生支持.