多less个字节是无符号long long?

多less个字节是unsigned long long ? 它是一样的unsigned long long int

执行摘要:它是64位或更大。

unsigned long longunsigned long long int相同。 它的大小取决于平台,但由C标准(ISO C99)保证至less为64位。 在C89中没有long long ,但显然即使MSVC支持它,所以它非常便携。

在当前的C ++标准(2003年发布)中,虽然很多编译器都支持它作为扩展,但并不long long 。 即将到来的C ++ 0x标准将支持它,它的大小将与C相同,所以至less有64位。

您可以使用expression式sizeof(unsigned long long)以字节(典型平台上的8位)获取确切的大小。 如果你只是想要64位,使用头文件<stdint.h>定义的uint64_t以及一些相关的types(C99,C ++ 11和一些当前的C ++编译器)。

与C一样,C ++的优点在于这些东西的大小是由实现定义的,所以如果没有指定你正在使用的编译器,就没有正确的答案。 这两个是一样的吗? 是。 “long long”是“long long int”的同义词,对于任何接受这两者的编译器来说。

它必须至less有64位。 除此之外,它的实现定义。

严格地说,在C ++ 0x标准之前, unsigned long long在C ++中是不标准的。 unsigned long long是types为unsigned long long int的“简单types说明符”(因此它们是同义词)。

long long组types也在C99中,甚至在被标准化之前是C ++编译器的常见扩展。

使用运算符sizeof ,它会给你一个以字节表示的types的大小。 一个字节是八位。 请参阅以下程序:

 #include <iostream> int main(int,char**) { std::cout << "unsigned long long " << sizeof(unsigned long long) << "\n"; std::cout << "unsigned long long int " << sizeof(unsigned long long int) << "\n"; return 0; }