C++教科書/標準ライブラリ編/<climits>の章
編集はじめに
編集<climits>
ヘッダーは、C++ の標準ライブラリの一部であり、プログラムで使用できる各種整数型とその限界値に関する情報を提供します。 このヘッダーはもともと C 言語の標準ライブラリに <limits.h>
として存在していました。
ヘッダーの内容
編集<climits>
ヘッダーは、主に以下のマクロを定義しています。 これらのマクロは、コンパイラがサポートしている整数型の最小値と最大値、その他の特性をプログラムから参照できるようにします。
- CHAR_BIT
- バイトあたりのビット数。ほとんどのシステムでは
8
ですが、コンパイラによって異なる可能性があります。 - MB_LEN_MAX
- マルチバイト文字 (ワイド文字) を表現するために必要な最大バイト数。マルチバイト文字を使用しないシステムでは
1
になる可能性があります。 - 符号付き整数型の限界値
CHAR_MIN
とCHAR_MAX
char
型の最小値と最大値です。SCHAR_MIN
(C++11 以降)signed char
型の最小値です。SHRT_MIN
とSHRT_MAX
short
型の最小値と最大値です。INT_MIN
とINT_MAX
int
型の最小値と最大値です。LONG_MIN
とLONG_MAX
long
型の最小値と最大値です。LLONG_MIN
(C++11 以降)long long
型の最小値です (C++11 で導入された型)。LLONG_MAX
(C++11 以降)long long
型の最大値です (C++11 で導入された型)。- 符号なし整数型の限界値
UCHAR_MAX
unsigned char
型の最大値です。USHRT_MAX
unsigned short
型の最大値です。UINT_MAX
unsigned int
型の最大値です。ULONG_MAX
unsigned long
型の最大値です。ULLONG_MAX
(C++11 以降)unsigned long long
型の最大値です (C++11 で導入された型)。
注意: これらのマクロの実際の値は、コンパイラやシステムアーキテクチャによって異なります。 <climits>
ヘッダーは、プログラムが動作している環境に依存しないように、これらの値を定数として提供します。
ヘッダーの利用方法
編集<climits>
ヘッダーを利用するには、プログラムの先頭部分で以下のようにインクルードします。
#include <climits>
その後、プログラム内で CHAR_MIN
, INT_MAX
などのマクロを使って、対応する整数型の限界値を参照することができます。
- 例
#include <climits> #include <iostream> int main() { std::cout << "char の最小値: " << SCHAR_MIN << std::endl; std::cout << "char の最大値: " << SCHAR_MAX << std::endl; std::cout << "int の最小値: " << INT_MIN << std::endl; std::cout << "int の最大値: " << INT_MAX << std::endl; return 0; }
このプログラムを実行すると、以下のような出力が得られます。
char の最小値: -128
char の最大値: 127
int の最小値: -2147483648
int の最大値: 2147483647
<climits>
ヘッダーは、プログラムで適切な整数型を選択したり、値の範囲チェックを行う際に役立ちます。