C言語の標準ヘッダstdint.hについて記述しています。stdint.hは、指定の幅を持つ整数型を宣言し、またそれらの宣言に対応するマクロを定義します。stdint.hは、C99から追加されたヘッダです。
stdint.hはC言語の標準ヘッダです。指定の幅を持つ整数型を宣言し、それらの宣言に対応するマクロを定義しています。また、他の標準ヘッダで定義された型に対応する整数型の限界値を示すマクロも定義します。
型は以下のものが宣言されています。記号Nは、符号無し10進整数を表します。例えば8や24などの数です。
名称 | 内容 |
---|---|
intN_t | 幅がNビット、詰め物ビットなし、2の補数で表現される、符号付き整数型。例えば、int8_tなら、厳密に幅が8ビットの符号付き整数型となる。 |
uintN_t | 幅がNビットの符号なし整数型。 |
int_leastN_t | 少なくとも幅がNビットの符号付き整数型。 |
uint_leastN_t | 少なくとも幅がNビットの符号なし整数型。 |
int_fastN_t | 少なくとも幅がNビットの最速符号付き整数型。 |
uint_fastN_t | 少なくとも幅がNビットの最速符号なし整数型。 |
intptr_t | voidへのポインタがこの型へ変換可能でかつ逆の変換も可能な符号付き整数型。 |
uintptr_t | voidへのポインタがこの型へ変換可能でかつ逆の変換も可能な符号なし整数型。 |
intmax_t | すべての符号付き整数型のすべての値を表現可能な符号付き整数型。 |
uintmax_t | すべての符号なし整数型のすべての値を表現可能な符号なし整数型。 |
intN_tとuintN_tについては、処理系が、8, 16, 32, 64ビットの整数型を提供しているならば、対応する型は必ず存在します。int_leastN_t、uint_leastN_t、int_fastN_t、uint_fastN_tについては、Nが8, 16, 32, 64の宣言は必ずあります。intptr_tとuintptr_tについては、任意実装のため宣言がない可能性があります。intmax_tとuintmax_tは、必ず宣言されています。
オブジェクト形式マクロは、以下のものが定義されています。
名称 | 内容 |
---|---|
INTN_MIN | 幅指定符号付き整数型の最小値。 |
INTN_MAX | 幅指定符号付き整数型の最大値。 |
UINTN_MAX | 幅指定符号なし整数型の最大値。 |
INT_LEASTN_MIN | 最小幅指定符号付き整数型の最小値。 |
INT_LEASTN_MAX | 最小幅指定符号付き整数型の最大値。 |
UINT_LEASTN_MAX | 最小幅指定符号なし整数型の最大値。 |
INT_FASTN_MIN | 最速最小幅指定符号付き整数型の最小値。 |
INT_FASTN_MAX | 最速最小幅指定符号付き整数型の最大値。 |
UINT_FASTN_MAX | 最速最小幅指定符号なし整数型の最大値。 |
INTPTR_MIN | ポインタ保持可能な符号付き整数型の最小値。 |
INTPTR_MAX | ポインタ保持可能な符号付き整数型の最大値。 |
UINTPTR_MAX | ポインタ保持可能な符号なし整数型の最大値。 |
INTMAX_MIN | 最大幅符号付き整数型の最小値。 |
INTMAX_MAX | 最大幅符号付き整数型の最大値。 |
UINTMAX_MAX | 最大幅符号無し整数型の最大値。 |
PTRDIFF_MIN | ptrdiff_tの下限値。 |
PTRDIFF_MAX | ptrdiff_tの上限値。 |
SIG_ATOMIC_MIN | sig_atomic_tの下限値。 |
SIG_ATOMIC_MAX | sig_atomic_tの上限値。 |
SIZE_MAX | size_tの上限値。 |
WCHAR_MIN | wchar_tの下限値。 |
WCHAR_MAX | wchar_tの上限値。 |
WINT_MIN | wint_tの下限値。 |
WINT_MAX | wint_tの上限値。 |
関数形式マクロは、以下のものがあります。
名称 | 内容 |
---|---|
INTN_C(値) | 型int_leastN_tに対応する整数定数式に展開。 |
UINTN_C(値) | 型uint_leastN_tに対応する整数定数式に展開。 |
INTMAX_C(値) | 実引数で指定された値をもつ、intmax_t型の整数定数式に展開。 |
UINTMAX_C(値) | 実引数で指定された値をもつ、uintmax_t型の整数定数式に展開。 |