是否有长的定义? [英] Is there long long defined?
问题描述
在何处检查类型long long是否定义?我想这样做:
Where to check if type long long is defined? I wanna do something like this:
#ifdef LONGLONG
#define long_long long long
#else
#define long_long long
#endif
推荐答案
LLONG_MAX
给出 long long
表示的最大值;如果你的实现不支持 long long
,它不应该定义 LLONG_MAX
。
LLONG_MAX
gives the maximum value representable by a long long
; if your implementation doesn't support long long
, it shouldn't define 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
。
This isn't a perfect solution. long long
isn't standard in C++03, and long long
has been around longer than C99, so it's possible (and likely) that a compiler could support long long
but not define LLONG_MAX
.
如果你想要一个具有特定大小的整数类型,你应该使用< stdint.h>
如果你的实现支持它。如果您的实现不支持它,请 Boost实现它< a>。
If you want an integer type with a specific size, you should use <stdint.h>
if your implementation supports it. If your implementation doesn't support it, Boost has an implementation of it.
这篇关于是否有长的定义?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!