2

long原始数据类型是否有 C++ 变体?
C++long只有 4 个字节,而 Javalong是 8 个字节。

那么:在 C++ 中是否存在大小为 8 字节的非十进制原始类型?
也许有一些技巧?

谢谢

4

3 回答 3

4

Microsoft Visual C++ 定义了__int64一种与 Java 的long. gcc 有int64_t. ISO C99 标准中甚至long long int定义了一种类型,但根据标准,它至少为64 位宽,但可能更宽。

但除了大小之外,还需要考虑字节序。Java 标准要求大端,但对于 C,字节序是 AFAIK 始终依赖于平台的。

于 2010-07-14T10:45:25.180 回答
3

C++ 有一个long long类型,长度为 64 位(在大多数平台上)。

于 2010-07-14T10:44:12.397 回答
2

从 C++11 开始,标头中有固定宽度的整数类型<cstdint>。在您的场景中,您可能希望使用std::int64_tor std::uint64_t

因为它是 C++11 语言规范的一部分,所以应该保证平台和编译器的兼容性。

于 2017-06-14T22:29:18.990 回答