我使用size_t
用于我的代码无符号整数。它有一个优点,如果我的电脑支持64位,size_t
将是unsigned long long int
,否则,它是unsigned int
。我的代码可以在32位和64位平台上运行。C++整数类型自动的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
并为我的所有代码包含此标头。如果有类似于size_t
的东西,它会很棒。
也许使用'uint64_t'? –
cstdint中有一大堆整数类型(http://en.cppreference.com/w/cpp/header/cstdint)。选择一个合适的。 –
从C++ 11开始,所有符合C++编译器都支持64位整数。鉴于此,想要在某些系统上使用32位整数和在其他系统上使用64位整数可能是合理的 - 但首先您应该定义如何做出该选择。另请参阅''标准头文件,它定义了具有精确宽度的整数类型,以及具有*至少*指定宽度的“快速”和“最少”类型。 'int_fast32_t'可能是你想要的。 –