long
原始数据类型是否有 C++ 变体?
C++long
只有 4 个字节,而 Javalong
是 8 个字节。
那么:在 C++ 中是否存在大小为 8 字节的非十进制原始类型?
也许有一些技巧?
谢谢
long
原始数据类型是否有 C++ 变体?
C++long
只有 4 个字节,而 Javalong
是 8 个字节。
那么:在 C++ 中是否存在大小为 8 字节的非十进制原始类型?
也许有一些技巧?
谢谢
Microsoft Visual C++ 定义了__int64
一种与 Java 的long
. gcc 有int64_t
. ISO C99 标准中甚至long long int
定义了一种类型,但根据标准,它至少为64 位宽,但可能更宽。
但除了大小之外,还需要考虑字节序。Java 标准要求大端,但对于 C,字节序是 AFAIK 始终依赖于平台的。
C++ 有一个long long
类型,长度为 64 位(在大多数平台上)。
从 C++11 开始,标头中有固定宽度的整数类型<cstdint>
。在您的场景中,您可能希望使用std::int64_t
or std::uint64_t
。
因为它是 C++11 语言规范的一部分,所以应该保证平台和编译器的兼容性。