固定幅整数型 (C99以降)
From cppreference.com
目次 |
[編集] 型
| ヘッダー
<stdint.h> で定義 | |
int8_tint16_tint32_tint64_t
|
それぞれ 8, 16, 32, 64 ビットの幅を持つ符号付き整数型 (実装が直接型をサポートしている場合にのみ提供される) パディングビットなしで、負の値には2の補数を使用 (実装が直接型をサポートしている場合にのみ提供される) |
int_fast8_tint_fast16_tint_fast32_tint_fast64_t
|
それぞれ 8, 16, 32, 64 ビット以上の幅を持つ、最も高速な符号付き整数型 (実装が直接型をサポートしている場合にのみ提供される) |
int_least8_tint_least16_tint_least32_tint_least64_t
|
それぞれ 8, 16, 32, 64 ビットの幅を持つ、最小の符号付き整数型 (実装が直接型をサポートしている場合にのみ提供される) |
intmax_t
|
最大幅整数型 |
intptr_t
|
ポインタを格納できる整数型 |
uint8_tuint16_tuint32_tuint64_t
|
それぞれ 8, 16, 32, 64 ビットの幅を持つ符号なし整数型 (実装が直接型をサポートしている場合にのみ提供される) (実装が直接型をサポートしている場合にのみ提供される) |
uint_fast8_tuint_fast16_tuint_fast32_tuint_fast64_t
|
それぞれ 8, 16, 32, 64 ビット以上の幅を持つ、最も高速な符号なし整数型 (実装が直接型をサポートしている場合にのみ提供される) |
uint_least8_tuint_least16_tuint_least32_tuint_least64_t
|
それぞれ 8, 16, 32, 64 ビットの幅を持つ、最小の符号なし整数型 (実装が直接型をサポートしている場合にのみ提供される) |
uintmax_t
|
最大幅符号なし整数型 |
uintptr_t
|
ポインタを格納できる符号なし整数型 |
実装は、N が 8、16、32、または 64 でない場合に、typedef 名 intN_t、int_fastN_t、int_leastN_t、uintN_t、uint_fastN_t、および uint_leastN_t を定義する場合があります。intN_t の形式の typedef 名は、実装がパディングなしでその幅の整数型をサポートしている場合にのみ定義できます。したがって、uint24_t は、正確に 24 ビットの幅を持つ符号なし整数型を意味します。
以下にリストされている各マクロは、実装が対応する typedef 名を定義している場合にのみ定義されます。マクロ INTN_C および UINTN_C は、それぞれ typedef 名 int_leastN_t および uint_leastN_t に対応します。
[編集] マクロ定数
| ヘッダー
<stdint.h> で定義 | |
符号付き整数:幅 | |
| INT8_WIDTHINT16_WIDTHINT32_WIDTHINT64_WIDTH (C23)(オプション) |
それぞれ 8, 16, 32, 64 ビットの int8_t、int16_t、int32_t、int64_t 型オブジェクトのビット幅 (マクロ定数) |
| INT_FAST8_WIDTHINT_FAST16_WIDTHINT_FAST32_WIDTHINT_FAST64_WIDTH (C23) |
int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 型オブジェクトのビット幅 (マクロ定数) |
| INT_LEAST8_WIDTHINT_LEAST16_WIDTHINT_LEAST32_WIDTHINT_LEAST64_WIDTH (C23) |
int_least8_t、int_least16_t、int_least32_t、int_least64_t 型オブジェクトのビット幅 (マクロ定数) |
| INTPTR_WIDTH (C23)(オプション) |
intptr_t 型オブジェクトのビット幅 (マクロ定数) |
| INTMAX_WIDTH (C23) |
intmax_t 型オブジェクトのビット幅 (マクロ定数) |
符号付き整数: 最小値 | |
| INT8_MININT16_MININT32_MININT64_MIN |
それぞれ 8, 16, 32, 64 ビットの int8_t、int16_t、int32_t、int64_t 型オブジェクトの最小値 (マクロ定数) |
| INT_FAST8_MININT_FAST16_MININT_FAST32_MININT_FAST64_MIN |
int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 型オブジェクトの最小値 (マクロ定数) |
| INT_LEAST8_MININT_LEAST16_MININT_LEAST32_MININT_LEAST64_MIN |
int_least8_t、int_least16_t、int_least32_t、int_least64_t 型オブジェクトの最小値 (マクロ定数) |
| INTPTR_MIN |
intptr_t 型オブジェクトの最小値 (マクロ定数) |
| INTMAX_MIN |
intmax_t 型オブジェクトの最小値 (マクロ定数) |
符号付き整数: 最大値 | |
| INT8_MAXINT16_MAXINT32_MAXINT64_MAX |
それぞれ 8, 16, 32, 64 ビットの int8_t、int16_t、int32_t、int64_t 型オブジェクトの最大値 (マクロ定数) |
| INT_FAST8_MAXINT_FAST16_MAXINT_FAST32_MAXINT_FAST64_MAX |
int_fast8_t、int_fast16_t、int_fast32_t、int_fast64_t 型オブジェクトの最大値 (マクロ定数) |
| INT_LEAST8_MAXINT_LEAST16_MAXINT_LEAST32_MAXINT_LEAST64_MAX |
int_least8_t、int_least16_t、int_least32_t、int_least64_t 型オブジェクトの最大値 (マクロ定数) |
| INTPTR_MAX |
intptr_t 型オブジェクトの最大値 (マクロ定数) |
| INTMAX_MAX |
intmax_t 型オブジェクトの最大値 (マクロ定数) |
符号なし整数:幅 | |
| UINT8_WIDTHUINT16_WIDTHUINT32_WIDTHUINT64_WIDTH (C23)(オプション) |
それぞれ 8, 16, 32, 64 ビットの uint8_t、uint16_t、uint32_t、uint64_t 型オブジェクトのビット幅 (マクロ定数) |
| UINT_FAST8_WIDTHUINT_FAST16_WIDTHUINT_FAST32_WIDTHUINT_FAST64_WIDTH (C23) |
uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t 型オブジェクトのビット幅 (マクロ定数) |
| UINT_LEAST8_WIDTHUINT_LEAST16_WIDTHUINT_LEAST32_WIDTHUINT_LEAST64_WIDTH (C23) |
uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 型オブジェクトのビット幅 (マクロ定数) |
| UINTPTR_WIDTH (C23)(オプション) |
uintptr_t 型オブジェクトのビット幅 (マクロ定数) |
| UINTMAX_WIDTH (C23) |
uintmax_t 型オブジェクトのビット幅 (マクロ定数) |
符号なし整数: 最大値 | |
| UINT8_MAXUINT16_MAXUINT32_MAXUINT64_MAX |
それぞれ 8, 16, 32, 64 ビットの uint8_t、uint16_t、uint32_t、uint64_t 型オブジェクトの最大値 (マクロ定数) |
| UINT_FAST8_MAXUINT_FAST16_MAXUINT_FAST32_MAXUINT_FAST64_MAX |
uint_fast8_t、uint_fast16_t、uint_fast32_t、uint_fast64_t 型オブジェクトの最大値 (マクロ定数) |
| UINT_LEAST8_MAXUINT_LEAST16_MAXUINT_LEAST32_MAXUINT_LEAST64_MAX |
uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t 型オブジェクトの最大値 (マクロ定数) |
| UINTPTR_MAX |
uintptr_t 型オブジェクトの最大値 (マクロ定数) |
| UINTMAX_MAX |
uintmax_t 型オブジェクトの最大値 (マクロ定数) |
[編集] 最小幅整数定数のための関数マクロ
| INT8_CINT16_CINT32_CINT64_C |
引数で指定された値と、それぞれ int_least8_t、int_least16_t、int_least32_t、int_least64_t の型を持つ整数定数式に展開されます。 (関数マクロ) |
| INTMAX_C |
引数で指定された値と intmax_t の型を持つ整数定数式に展開されます。 (関数マクロ) |
| UINT8_CUINT16_CUINT32_CUINT64_C |
引数で指定された値と、それぞれ uint_least8_t、uint_least16_t、uint_least32_t、uint_least64_t の型を持つ整数定数式に展開されます。 (関数マクロ) |
| UINTMAX_C |
引数で指定された値と uintmax_t の型を持つ整数定数式に展開されます。 (関数マクロ) |
#include <stdint.h> UINT64_C(0x123) // might expand to 0x123ULL or 0x123UL
[編集] フォーマットマクロ定数
| ヘッダ
<inttypes.h> で定義 |
[編集] fprintfファミリーの関数用のフォーマット定数
ここにリストされている各 PRI マクロは、実装が対応する typedef 名を定義している場合にのみ定義されます。
| 同等 int または unsigned int |
説明 | データ型用マクロ | ||||
|---|---|---|---|---|---|---|
[u]intx_t |
[u]int_leastx_t |
[u]int_fastx_t |
[u]intmax_t |
[u]intptr_t | ||
d
|
符号付き10進整数値の出力 | PRIdx | PRIdLEASTx | PRIdFASTx | PRIdMAX | PRIdPTR |
i
|
PRIix | PRIiLEASTx | PRIiFASTx | PRIiMAX | PRIiPTR | |
u
|
符号なし10進整数値の出力 | PRIux | PRIuLEASTx | PRIuFASTx | PRIuMAX | PRIuPTR |
o
|
符号なし8進整数値の出力 | PRIox | PRIoLEASTx | PRIoFASTx | PRIoMAX | PRIoPTR |
x
|
符号なし小文字16進整数値の出力 | PRIxx | PRIxLEASTx | PRIxFASTx | PRIxMAX | PRIxPTR |
X
|
符号なし大文字16進整数値の出力 | PRIXx | PRIXLEASTx | PRIXFASTx | PRIXMAX | PRIXPTR |
[編集] fscanfファミリーの関数用のフォーマット定数
ここにリストされている各 SCN マクロは、実装が対応する typedef 名を定義しており、かつその型に適した fscanf の長さ修飾子を持っている場合にのみ定義されます。
| 同等 int または unsigned int |
説明 | データ型用マクロ | ||||
|---|---|---|---|---|---|---|
[u]intx_t |
[u]int_leastx_t |
[u]int_fastx_t |
[u]intmax_t |
[u]intptr_t | ||
d
|
符号付き10進整数値の入力 | SCNdx | SCNdLEASTx | SCNdFASTx | SCNdMAX | SCNdPTR |
i
|
符号付き整数値の入力(基数は解析された最初の文字によって決まります) | SCNix | SCNiLEASTx | SCNiFASTx | SCNiMAX | SCNiPTR |
u
|
符号なし10進整数値の入力 | SCNux | SCNuLEASTx | SCNuFASTx | SCNuMAX | SCNuPTR |
o
|
符号なし8進整数値の入力 | SCNox | SCNoLEASTx | SCNoFASTx | SCNoMAX | SCNoPTR |
x
|
符号なし16進整数値の入力 | SCNxx | SCNxLEASTx | SCNxFASTx | SCNxMAX | SCNxPTR |
[編集] 例
この例で使用されている フォーマットマクロ の前のスペースに関する C++ の互換性に関する注意を参照してください。
このコードを実行
実行結果の例
8 lld -9223372036854775808 +9223372036854775807 +7
[編集] 参考文献
- C23標準 (ISO/IEC 9899:2024)
- 7.8.1 フォーマット指定子用マクロ(p: TBD)
- 7.18 整数型 <stdint.h>(p: TBD)
- C17標準 (ISO/IEC 9899:2018)
- 7.8.1 フォーマット指定子用マクロ(p: 158-159)
- 7.18 整数型 <stdint.h>(p: 212-216)
- C11標準 (ISO/IEC 9899:2011)
- 7.8.1 フォーマット指定子用マクロ(p: 217-218)
- 7.18 整数型 <stdint.h>(p: 289-295)
- C99標準 (ISO/IEC 9899:1999)
- 7.8.1 フォーマット指定子用マクロ(p: 198-199)
- 7.18 整数型 <stdint.h>(p: 255-261)
[編集] 関連項目
| C++ドキュメント 固定幅整数型
| |
| C++ドキュメント ユーザー定義リテラル(フォーマットマクロに関する注記)
|