gpt4 book ai didi

C++整数类型自动64位

转载 作者:行者123 更新时间:2023-11-30 01:09:38 27 4
gpt4 key购买 nike

我在代码中使用 size_t 作为无符号整数。它有一个优点,如果我的电脑支持 64 位,size_t 将是 unsigned long long int,否则,它是 unsigned int。我的代码可以在 32 位和 64 位平台上运行。

是否有类似的有符号整数?如果平台只支持32位,则为int,如果平台支持64位,则为long long int

我可以通过设置一个标志来实现:

#ifdef USE_INT64
#define MY_INT int
#else
#define MY_INT long long int
#endif

然后使用MY_INT。但是,我需要定义 USE_INT64 并为我的所有代码包含此 header 。如果有类似size_t的东西就好了。

最佳答案

如果您想将您的类型直接与地址宽度联系起来,那么您正在寻找的类型称为 uintptr_tintptr_t .它们通过 <cstdint> 从 C 标准库继承而来。 .

输入 size_t不能保证与指针具有相同的大小(在一般情况下它更小),这意味着它为此目的的可用性是特定于平台的。 (阅读:尽管它适用于任何地方,但它在概念上是错误的。)

当然,这里真正的问题是是否有充分的潜在理由将整数类型与地址宽度联系起来。如果没有,更好的办法是直接通过 uintNN_t 定义类型。/intNN_t typedefs 并忘记 size_t等等。

关于C++整数类型自动64位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39924053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com