C 標準ライブラリ - <limits.h>
はじめに
limits.h ヘッダー ファイルは、さまざまな変数タイプのさまざまな属性を決定します。このヘッダー ファイルで定義されたマクロは、さまざまな変数タイプ (char、int、long など) の値を制限します。
これらの制限は、変数がこれらの制限を超える値を格納できないことを指定します。たとえば、符号なし変数が格納できる最大値は 255 です。
ライブラリマクロ
次の値は実装固有であり、#define ディレクティブを通じて定義されます。これらの値は、以下に示す値より小さくてはなりません。
マクロ | 値 | 説明 |
---|---|---|
CHAR_BIT | 8 | バイト内のビット数を定義します。 |
SCHAR_MIN | -128 | 署名付き文字の最小値を定義します。 |
SCHAR_MAX | 127 | 署名付き文字の最大値を定義します。 |
UCHAR_MAX | 255 | 符号なし文字の最大値を定義します。 |
CHAR_MIN | 0 | は、char 型の最小値を定義します。char が負の値を表す場合、その値は SCHAR_MIN に等しく、それ以外の場合は 0 に等しくなります。 |
CHAR_MAX | 127 | char 型の最大値を定義します。char が負の値を表す場合、その値は SCHAR_MAX に等しく、それ以外の場合は UCHAR_MAX に等しくなります。 |
MB_LEN_MAX | 1 | マルチバイト文字の最大バイト数を定義します。 |
SHRT_MIN | -32768 | short 整数の最小値を定義します。 |
SHRT_MAX | +32767 | short 整数の最大値を定義します。 |
USHRT_MAX | 65535 | 符号なし短整数の最大値を定義します。 |
INT_MIN | -32768 | 整数の最小値を定義します。 |
INT_MAX | +32767 | 整数の最大値を定義します。 |
UINT_MAX | 65535 | 符号なし整数の最大値を定義します。 |
LONG_MIN | -2147483648 | 長整数の最小値を定義します。 |
LONG_MAX | +2147483647 | long 整数の最大値を定義します。 |
ULONG_MAX | 4294967295 | 符号なし長整数の最大値を定義します。 |
例
次の例は、limit.h ファイルで定義されたいくつかの定数の使用を示しています。
#include <stdio.h>#include <limits.h>int main(){ printf("The number of bits in a byte %d\n", CHAR_BIT); printf("The minimum value of SIGNED CHAR = %d\n", SCHAR_MIN); printf("The maximum value of SIGNED CHAR = %d\n", SCHAR_MAX); printf("The maximum value of UNSIGNED CHAR = %d\n", UCHAR_MAX); printf("The minimum value of SHORT INT = %d\n", SHRT_MIN); printf("The maximum value of SHORT INT = %d\n", SHRT_MAX); printf("The minimum value of INT = %d\n", INT_MIN); printf("The maximum value of INT = %d\n", INT_MAX); printf("The minimum value of CHAR = %d\n", CHAR_MIN); printf("The maximum value of CHAR = %d\n", CHAR_MAX); printf("The minimum value of LONG = %ld\n", LONG_MIN); printf("The maximum value of LONG = %ld\n", LONG_MAX); return(0);}
上記のプログラムをコンパイルして実行すると、次の結果が得られます:
The number of bits in a byte 8The minimum value of SIGNED CHAR = -128The maximum value of SIGNED CHAR = 127The maximum value of UNSIGNED CHAR = 255The minimum value of SHORT INT = -32768The maximum value of SHORT INT = 32767The minimum value of INT = -32768The maximum value of INT = 32767The minimum value of CHAR = -128The maximum value of CHAR = 127The minimum value of LONG = -2147483648The maximum value of LONG = 2147483647