unsigned long long
有多少字节?它和unsigned long long int
一样吗?
发布于 2011-04-30 03:14:04
执行摘要:它是64位或更大。
unsigned long long
与unsigned 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++编译器中可用)。
发布于 2011-04-30 03:13:04
与C一样,C++的美妙之处在于,这些东西的大小是由实现定义的,所以如果不指定正在使用的编译器,就没有正确的答案。这两个是一样的吗?是。"long long“是"long long int”的同义词,对于任何同时接受两者的编译器来说。
发布于 2011-04-30 03:14:45
它必须至少为64位。除此之外,它还定义了实现。
严格地说,直到C++0x标准,unsigned long long
才成为C++的标准。unsigned long long
是unsigned long long int
类型的“简单类型说明符”(所以它们是同义词)。
long long
类型集也在C99中,甚至在标准化之前就是C++编译器的常见扩展。
https://stackoverflow.com/questions/5836329
复制相似问题