ホームページ >バックエンド開発 >C++ >C では「long」は少なくとも 32 ビットであることが保証されていますか?

C では「long」は少なくとも 32 ビットであることが保証されていますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-26 18:10:30782ブラウズ

Is `long` Guaranteed to be at Least 32 Bits in C  ?

少なくとも 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。