今回は stdint.h に含まれる、各型の限界の定義について説明します。
以降の定義の注意を示す。C++ では stdint.h を読み込む前に __STDC_LIMIT_MACROS を定義したときだけ以下のマクロが定義される。これらは、#if 式で利用可能である。N は前に0の付かない符号なし10進数整数をあらわしている。
以降の定義の注意を示す。C++ では stdint.h を読み込む前に __STDC_LIMIT_MACROS を定義したときだけ以下のマクロが定義される。これらは、#if 式で利用可能である。N は前に0の付かない符号なし10進数整数をあらわしている。
| 定義名 | 値 | 説明 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| INTN_MIN | 1-2N-1または-2N-1 | 符号付き整数型の最小値のマクロ名 | ||||||||||||||||||||
| INTN_MAX | 2N-1-1 | 符号付き整数型の最大値のマクロ名 | ||||||||||||||||||||
| UINTN_MAX | 2N-1 | 符号なし整数型の最大値のマクロ名 | ||||||||||||||||||||
例:N=32の場合
| ||||||||||||||||||||||
| 定義名 | 保証値 | 説明 |
|---|---|---|
| INT_LEASTN_MIN | 1-2N-1 | 符号付き整数型の最小値のマクロ名 |
| INT_LEASTN_MAX | 2N-1-1 | 符号付き整数型の最大値のマクロ名 |
| UINT_LEASTN_MAX | 2N-1 | 符号なし整数型の最大値のマクロ名 |
| 定義名 | 保証値 | 説明 |
|---|---|---|
| INT_FASTN_MIN | 1-2N-1 | 符号付き整数型の最小値のマクロ名 |
| INT_FASTN_MAX | 2N-1-1 | 符号付き整数型の最大値のマクロ名 |
| UINT_FASTN_MAX | 2N-1 | 符号なし整数型の最大値のマクロ名 |
| 定義名 | 保証値 | 説明 |
|---|---|---|
| INTPTR_MIN | -32767 | 符号付き整数型の最小値のマクロ名 |
| INTPTR_MAX | 32767 | 符号付き整数型の最大値のマクロ名 |
| UINTPTR_MAX | 65535 | 符号なし整数型の最大値のマクロ名 |
| 定義名 | 保証値 | 説明 |
|---|---|---|
| INTMAX_MIN | 1-263 | 符号付き整数型の最小値のマクロ名 |
| INTMAX_MAX | 263-1 | 符号付き整数型の最大値のマクロ名 |
| UINTMAX_MAX | 264-1 | 符号なし整数型の最大値のマクロ名 |
| 定義名 | 保証値 | 説明 |
|---|---|---|
| PTRDIFF_MIN | -65535 | ptrdiff_t の下限のマクロ名 |
| PTRDIFF_MAX | 65535 | ptrdiff_t の上限のマクロ名 |
| SIG_ATOMIC_MIN | -127 | sig_atomic_t が符号あり整数で定義されたときの下限のマクロ名 |
| 0 | sig_atomic_t が符号なし整数で定義されたときの下限のマクロ名 | |
| SIG_ATOMIC_MAX | 127 | sig_atomic_t が符号あり整数で定義されたときの上限のマクロ名 |
| 255 | sig_atomic_t が符号なし整数で定義されたときの上限のマクロ名 | |
| WCHAR_MIN | -127 | wchar_t が符号あり整数で定義されたときの下限のマクロ名 |
| 0 | wchar_t が符号なし整数で定義されたときの下限のマクロ名 | |
| WCHAR_MAX | 127 | wchar_t が符号あり整数で定義されたときの上限のマクロ名 |
| 255 | wchar_t が符号なし整数で定義されたときの上限のマクロ名 | |
| WINT_MIN | -32767 | wint_t が符号あり整数で定義されたときの下限のマクロ名 |
| 0 | wint_t が符号なし整数で定義されたときの下限のマクロ名 | |
| WINT_MAX | 32767 | wint_t が符号あり整数で定義されたときの上限のマクロ名 |
| 65535 | wint_t が符号なし整数で定義されたときの上限のマクロ名 | |
| SIZE_MAX | 65535 | size_t の上限のマクロ名 |
| 定義名 | 説明 |
|---|---|
| INTN_C(値) | 値を int_leastN_t を型とする符号付き整数定数へ展開するマクロ |
| UINTN_C(値) | 値を uint_leastN_t を型とする符号なし整数定数へ展開するマクロ |
| INTMAX_C(値) | 値を intmax_t を型とする符号付き整数定数へ展開するマクロ |
| UINTMAX_C(値) | 値を uintmax_t を型とする符号なし整数定数へ展開するマクロ |
by seclan