Fre*_*Foo 74
执行摘要:它是64位或更大.
unsigned long long是一样的unsigned long long int.它的大小取决于平台,但C标准(ISO C99)保证至少为64位.long long在C89 中没有,但显然甚至MSVC都支持它,所以它非常便携.
在当前的C++标准(2003年发布)中,没有long long,尽管许多编译器都支持它作为扩展.即将推出的C++ 0x标准将支持它,它的大小将与C中的相同,因此至少为64位.
您可以使用表达式获取字节(典型平台上为8位)的确切大小sizeof(unsigned long long).如果你想要64位,请使用uint64_t,这在头文件中定义,<stdint.h>同时还有一堆相关类型(在C99,C++ 11和一些当前的C++编译器中可用).
Ern*_*ill 16
像C一样,C++的优点在于这些东西的大小是实现定义的,所以没有指定你正在使用的编译器就没有正确的答案.这两个是一样的吗?是."long long"是"long long int"的同义词,对于任何将同时接受这两者的编译器.
Mic*_*urr 14
它必须至少为64位.除此之外,它的实现已定义.
严格来说,unsigned long long在C++ 0x标准之前,C++中不是标准的. unsigned long long是类型的'简单类型说明符' unsigned long long int(因此它们是同义词).
这long long组类型也在C99中,甚至在标准化之前就是C++编译器的常见扩展.