多less个字节是无符号long long?
多less个字节是unsigned long long
? 它是一样的unsigned long long int
?
执行摘要:它是64位或更大。
unsigned long long
与unsigned 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; }