什么是长型?

时间:2011-06-15 06:32:02

标签: c++

  

可能重复:
  “long int”, “long long” Data Types

我是C ++的新手,我看了一个示例代码,我看到很长的类型。 它说的是这样的

long long deviceId;

这和长型一样吗?我正在尝试将设备ID从java(Android)发送到我的服务器。在java中,设备ID是长类型(8byte),我将它放入缓冲区,如

bytebuffer.putLong(Long.valueOf(deviceId));

我正在尝试使用c ++在我的linux服务器上解析它。

提前致谢。

3 个答案:

答案 0 :(得分:5)

long longlong不同(尽管它们可以具有相同的大小,例如在大多数64-bit POSIX system中)。只保证long long至少与long一样长。在大多数平台中,long long表示64位有符号整数类型。

您可以使用long long在大多数传统平台中安全地存储8字节值,但最好使用int64_t / {{1}中的int_least64_t / <stdint.h>澄清你想要一个≥64位的整数类型。

<cstdint>

答案 1 :(得分:2)

http://gcc.gnu.org/onlinedocs/gcc/Long-Long.html

  

ISO C99支持的数据类型   至少为64位的整数   广泛,并作为GCC支持的扩展   它们处于C90模式和C ++模式。只是   为签名写长long int   整数,或无符号long long int for   无符号整数。做一个   long long类型的整数常量   int,将后缀LL' to the integer. To make an integer constant of type unsigned long long int, add the suffix ULL'添加到整数。

答案 2 :(得分:0)

C99和C ++ 0x在long long int的含义上有所不同。 (C ++ 2003中没有long long int,尽管很多供应商都提供它。)C99非常具体:long long int至少为64位。 C ++ 0x非常模糊:sizeof(long long int)&gt; = sizeof(long int)&gt; = sizeof(int)&gt; = sizeof(short int)&gt; = sizeof(signed char)。唯一具有特殊含义的是int,它是执行环境中最自然的大小。