unsigned long long有多少字节

How many bytes is unsigned long long?

本文关键字:long 字节 多少 unsigned      更新时间:2023-10-16

unsigned long long有多少字节?是否与unsigned long long int相同?

执行摘要:64位或更大。

unsigned long longunsigned long long int相同。它的大小与平台有关,但由C标准(ISO C99)保证至少为64位。C89中没有long long,但显然MSVC也支持它,所以它是相当可移植的。

在当前的c++标准(2003年发布)中,没有long long,尽管许多编译器将其作为扩展支持。即将到来的c++ 0x标准将支持它,其大小将与C中相同,因此至少为64位。

您可以使用表达式sizeof(unsigned long long)获得确切的大小,以字节为单位(典型平台上为8位)。如果你想要64位,使用uint64_t,它是在头文件<stdint.h>中定义的,还有一堆相关的类型(在C99、c++ 11和一些当前的c++编译器中可用)。

c++的美妙之处在于,这些东西的大小是由实现定义的,所以如果不指定使用的编译器,就没有正确的答案。这两个是一样的吗?是的。"long long"是"long long int"的同义词,对于任何可以同时接受两者的编译器来说。

至少64位。除此之外,它是实现定义的。

严格地说,unsigned long long直到c++ 0x标准才成为c++的标准。unsigned long longunsigned long long int类型的"简单类型说明符"(因此它们是同义词)。

long long类型集也在C99中,甚至在标准化之前就是c++编译器的常见扩展。

使用sizeof运算符,它将给出以字节表示的类型的大小。一个字节是八个比特。请看下面的程序:

#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;
}