在哪里检查 long long 类型是否已定义?我想要像这样做:
#ifdef LONGLONG
#define long_long long long
#else
#define long_long long
#endif
在哪里检查 long long 类型是否已定义?我想要像这样做:
#ifdef LONGLONG
#define long_long long long
#else
#define long_long long
#endif
LLONG_MAX
表示 long long
类型所能表示的最大值;如果你的实现不支持 long long
,则不应该定义 LLONG_MAX
。
#include <limits.h>
#ifdef LLONG_MAX
#define long_long long long
#else
#define long_long long
#endif
long long
在C++03中不是标准,而long long
已经存在比C99更长的时间,因此很可能(且有可能)编译器支持long long
但未定义LLONG_MAX
。<stdint.h>
(如果您的实现支持)。 如果您的实现不支持它,Boost有一个实现。#include <climits>
检查是否可以找到足够大的整数类型以供您使用。(尽管您可以通过检查LLONG_MAX
是否被定义来判断long long
是否存在。)#include <cstdint.h>
并使用例如int64_t
来获取64位类型或int_fast64_t
来获取“快速” 64位类型(根据某些编译器特定的定义)。 或者使用intmax_t
以获取最大可用类型。
long long
,而是uint64_t
可以表示的最大值。您想要做什么? - James McNellis<cstdint>
中声明的std::intmax_t
。那将是可用的最大有符号整数类型。 - James McNellis