是否有长的定义? [英] Is there long long defined?

查看:83
本文介绍了是否有长的定义?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在何处检查类型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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆