什么是长-长型

what is long long type?

本文关键字:长型 什么      更新时间:2023-10-16

可能重复:
“long-int"“long-long;数据类型

我是C++的新手,我看了一个示例代码,看到了long-long类型。上面写着类似的内容

long long deviceId;

这和长型一样吗?我正在尝试从java(Android)向我的服务器发送设备id。在java中,设备id是长类型(8字节),我将其放入类似的缓冲区

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

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

提前谢谢。

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

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

#include <stdint.h>
...
int64_t deviceId;

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

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

C99和C++0x在long long int的含义上不同。(C++2003中没有long long int,尽管许多供应商确实提供了它。)C99非常具体:long-long-int至少是64位。C++0x非常模糊:sizeof(long-long-int)>=sizeof。唯一具有特殊意义的是int,它是执行环境中最自然的大小。