Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C u_int64_t在32位机器上可用吗?_C_Linux - Fatal编程技术网

C u_int64_t在32位机器上可用吗?

C u_int64_t在32位机器上可用吗?,c,linux,C,Linux,我想使用u\u int64\u t变量作为搜索键 u\u int64\t在32位机器上可用吗 如果不是,我必须把这个变量分成两个变量?那么作为一个搜索键,它就有点麻烦了 有什么解决方法吗?无符号64位整数类型不受C标准的保证,但通常在32位机器上以及几乎所有运行Linux的机器上都可用。当存在时,该类型将被命名为uint64\u t(请注意少一个下划线),并在头文件中声明。是32位机器上支持64位整数数据类型 在C89标准中,long-long(≥ 64, ≥ 长)类型的大小支持为。 在C99标

我想使用
u\u int64\u t
变量作为搜索键

u\u int64\t
在32位机器上可用吗

如果不是,我必须把这个变量分成两个变量?那么作为一个搜索键,它就有点麻烦了


有什么解决方法吗?

无符号64位整数类型不受C标准的保证,但通常在32位机器上以及几乎所有运行Linux的机器上都可用。当存在时,该类型将被命名为
uint64\u t
(请注意少一个下划线),并在
头文件中声明。

是32位机器上支持64位整数数据类型

在C89标准中,long-long(≥ 64, ≥ 长)类型的大小支持为。
在C99标准中,有很长的一段时间(≥ 64, ≥ 长)整数的大小。

根据一些文档或阅读其不太清楚

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

#include <sys/types.h>

#ifdef __GLIBC_HAVE_LONG_LONG

    u_int64_t i;

#endif
#包括
#如果你有足够的时间
u_int64_ti;
#恩迪夫

哦,顺便说一句,在linux中,
uintleast64_t
(typedef in
)和
unsigned long
@rubenvb的名称下保证至少有一个64位宽的无符号整数。注意,
long
允许大于64位。@DevSolar rubenvb的评论是这样说的“至少64位宽“。另一方面,OP最有可能只需要64位类型,而不关心罕见的架构,这些架构可能支持更广泛的类型,但不支持完全64位的类型。在这种情况下,
uint_least64_t
可能就是他们想要的:如果存在这样的类型,则正好64位宽,在一些不寻常的架构上,没有
uint64\u t
uint64\u t
将是下一个可用的大小,因此它仍然可以透明地工作。也就是说,理论上,我想,可能有一天会有一个系统存在64位类型以实现兼容性,但是72位
long-long-int
字的速度要快得多。尽管不太可能。@unwind您的操作非常麻烦。OP可能对类型的正确命名感到困惑。这种混乱应该在答案或评论中解决,而不是通过默默地编辑问题!此外,您没有正当理由删除了整个段落。请还原您的编辑。@user4815162342好的,谢谢您指出这一点。我想我不知道有这样的拼写,所以我认为这是一个打字错误。还要感谢Grijesh(我猜)实际还原了编辑。请注意,
long
允许大于64位。是的,您是对的,long-long可以大于64位宽(虽然很少),但感谢您的更正:)