ウィキペディアとStroustrup の FAQ では、型long long
は少なくとも64 ビット以上であると述べint
ています。C++11 標準の §3.9.1 Fundamental Types セクションを見てきましたが、64 ビットへの参照が見つかりません。私が見つけることができるのは、それが少なくとも で、少なくとも と同じ長さであるということだけです。標準は、拡張型ではなく標準の整数型としてリストされているため、少なくとも 64 ビットを保持するこのアサーションが正しいかどうか疑問に思っています。もしそうなら、それはどこに記載されていますか?C++11 標準のみ
について話していることに注意してください。long int
int
long long
long long
long long
質問する
5225 次
1 に答える
37
C++ 標準は、これについて C 標準を参照しています。[c.limits] を参照してください。は Cのと同じ意味でLLONG_MAX
定義されています。そして、これはCが言わなければならないことです:<climits>
<limits.h>
LLONG_MAX
5.2.4.2.1 整数型のサイズ
<limits.h>
#if
以下に示す値は、前処理ディレクティブでの使用に適した定数式に置き換えられます。[...] それらの実装定義の値は、同じ符号で示されているものと同じ大きさ (絶対値) である必要があります。[...]
-- タイプのオブジェクトの最大値
long long int
LLONG_MAX +9223372036854775807 //
2 63 -1
値を表すことができなければならない符号付きの型には、9223372036854775807
64 ビット以上が必要です。
于 2012-04-07T09:17:23.673 に答える