u_int64_t在32位机器上可用吗?

时间:2013-05-13 11:35:56

标签: c linux

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

在32位计算机上可用u_int64_t吗?

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

有没有解决方法呢?

3 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:5)

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

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

答案 2 :(得分: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中的方式