u_int64_t在32位机器上可用吗?

问题描述 投票:9回答:3

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

u_int64_t是否可在32位机器上使用?

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

这有什么解决方法吗?

c linux
3个回答
9
投票

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


5
投票

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

在C89标准中,长长(≥64,≥尺寸长)类型被支持为GNU extension。在C99标准中,长长度(≥64,≥长尺寸)整数存在native support


0
投票

根据一些文件或阅读其不太明确的__GLIBC_HAVE_LONG_LONG is the one that defines its presense in 32 bit architecture

使用的可能解决方案可能类似于下面的内容

#include <sys/types.h>

#ifdef __GLIBC_HAVE_LONG_LONG

    u_int64_t i;

#endif

哦顺便说一句,这是在linux中

© www.soinside.com 2019 - 2024. All rights reserved.