C++教科書/標準ライブラリ編/<climits>の章

編集

はじめに

編集

<climits> ヘッダーは、C++ の標準ライブラリの一部であり、プログラムで使用できる各種整数型とその限界値に関する情報を提供します。 このヘッダーはもともと C 言語の標準ライブラリに <limits.h> として存在していました。

ヘッダーの内容

編集

<climits> ヘッダーは、主に以下のマクロを定義しています。 これらのマクロは、コンパイラがサポートしている整数型の最小値と最大値、その他の特性をプログラムから参照できるようにします。

CHAR_BIT
バイトあたりのビット数。ほとんどのシステムでは 8 ですが、コンパイラによって異なる可能性があります。
MB_LEN_MAX
マルチバイト文字 (ワイド文字) を表現するために必要な最大バイト数。マルチバイト文字を使用しないシステムでは 1 になる可能性があります。
符号付き整数型の限界値
CHAR_MINCHAR_MAX
char 型の最小値と最大値です。
SCHAR_MIN (C++11 以降)
signed char 型の最小値です。
SHRT_MINSHRT_MAX
short 型の最小値と最大値です。
INT_MININT_MAX
int 型の最小値と最大値です。
LONG_MINLONG_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> ヘッダーは、プログラムで適切な整数型を選択したり、値の範囲チェックを行う際に役立ちます。