我是C ++的新手,我看了一个示例代码,我看到很长的类型。 它说的是这样的
long long deviceId;
这和长型一样吗?我正在尝试将设备ID从java(Android)发送到我的服务器。在java中,设备ID是长类型(8byte),我将它放入缓冲区,如
bytebuffer.putLong(Long.valueOf(deviceId));
我正在尝试使用c ++在我的linux服务器上解析它。
提前致谢。
答案 0 :(得分:5)
long long
与long
不同(尽管它们可以具有相同的大小,例如在大多数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,它是执行环境中最自然的大小。