long
并且long int
是相同的。那么,long long
和long long int
。在这两种情况下,int
都是可选的。
至于两组之间的差异,C ++的每个标准的任务的最小范围,并且long long
是在至少一样宽long
。
标准的控制部分(C ++ 11,但是已经存在很长时间了),其中3.9.1 Fundamental types
一部分是第2节(后面的部分为无符号整数类型提供了类似的规则):
有五种标准的带符号整数类型:带符号的char,short int,int,long int和long long int。在此列表中,每种类型至少提供与列表中位于其前面的类型相同的存储量。
中的表9还7.1.6.2 Simple type specifiers
显示了说明符到实际类型的“映射”(显示int
可选),其一部分如下所示:
Specifier(s) Type
------------- -------------
long long int long long int
long long long long int
long int long int
long long int
注意说明符和类型之间的区别。说明符是您告诉编译器类型的方式,但是您可以使用不同的说明符来得到相同的类型。
因此,long
就问题本身而言,它既不是类型,也不是修饰符,它只是该long int
类型的说明符。同long long
为该long long int
类型的说明符。
尽管C ++标准本身未指定整数类型的最小范围,但它确实引用了C99中的1.2 Normative references
应用。因此,C99 5.2.4.2.1 Sizes of integer types <limits.h>
适用的最小范围是适用的。
用表示long double
,实际上是一个浮点值,而不是整数。与整数类型相似,它要求至少具有double
和a一样高的精度,并提供该类型上的值的超集(意味着至少这些值,不一定是更多的值)。