新しいデータ型long longで少し問題が発生しました(例はC++ Primer第6版から来ています)。私はClimitsライブラリを使って、の長さがで、の長さが長くてであり、両方が9223372036854775807になったと教えてくれました。どのようにそれが可能ですか?データ型がlong longに等しい最大数をlong longでサポートするのはなぜですか?
#include <iostream>
#include <climits>
int main()
{
std::cout << "int size is " << sizeof(int) << " bytes." << std::endl;
std::cout << "short size is " << sizeof(short) << " bytes." << std::endl;
std::cout << "long size is " << sizeof(long) << " bytes." << std::endl;
std::cout << "long long size is " << sizeof(long long) << " bytes." << std::endl;
std::cout << "Maximum values: " << std::endl;
std::cout << "int: " << INT_MAX << std::endl;
std::cout << "short: " << SHRT_MAX << std::endl;
std::cout << "long: " << LONG_MAX << std::endl;
std::cout << "long long: " << LLONG_MAX << std::endl;
return 0;
}
各データ型のために必要な*最小*サイズのため、この質問を参照してください:http://stackoverflow.com/questions/589575/size-of-int-long-etc、ノートそれ必要な最小サイズ、すなわちデータ型が指定された値よりも大きくなる可能性があります。 – Naveen