少なくとも 32 ビットであることが保証されていますか?
C 標準では、整数のデータ ストレージに関して次の優先順位を規定しています。基本的な型:
sizeof(char) ≤ sizeof(short int) ≤ sizeof(int) ≤ sizeof(long int)
char のサイズの詳細については、セクション 1.7/1 で説明されています:
The fundamental storage unit in the C++ memory model is the byte. A byte is at least large enough to contain any member of the implementation’s basic character set and is composed of a contiguous sequence of bits, the number of which is implementation-defined.
これは、sizeof(char) が 1 から n までのいずれかであることを示唆しています。ビット。n は実装に依存します。ただし、C 標準には C 標準 (1.2/1) の知識も必要です。C 標準 (1.2/1) では、long が対応できる値の最小制限が定義されています。
LONG_MIN = -2147483647 // -(2^31 - 1) LONG_MAX = +2147483647 // 2^31 - 1
long は正と負の両方を保持できる必要があるため、これらの制限までの値を使用するには、論理的に、long のサイズは少なくとも 32 ビットでなければならないと推定されます。
つまり、C 標準ではバイト内のビット数は未指定のままですが、LONG_MIN に課せられる最小制限はLONG_MAX は、long には少なくとも 32 ビットのストレージが必要であることを意味します。
以上がC では「long」は少なくとも 32 ビットであることが保証されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。