long long可能不存储整数?

use*_*322 4 c++

在我的任务中,它说"不要添加长int或长长的私有成员来完成这个,因为不能保证任何一个实际上可以存储比int更大的数字." 我知道int的最大值为2 ^ 31-1,long long的最大值为2 ^ 63-1.有人能给我一个例子,为什么给定的句子是真的?

提前致谢!

Luc*_*ore 7

这正是它所说的.不能保证一个long long可以存储的数字多于一个int.它至少同样大,但它可以是相同的.

我知道int的最大值为2 ^ 31-1,long long的最大值为2 ^ 63-1

对于某些平台,对于某些编译器来说,这可能是正确的,但它并不总是相同的.C++也不保证.

3.9.1基本类型[basic.fundamental]

2)有五种标准的有符号整数类型:" signed char"," short int"," int"," long int"和" long long int".在此列表中, 每种类型至少提供与列表中前面的存储一样多的存储空间.[...](强调我的)