名前空間
変種
操作

固定幅の整数型 (C99およびそれ以降)

提供: cppreference.com
< c‎ | types

目次

[編集]

ヘッダ <stdint.h> で定義
int8_t
int16_t
int32_t
int64_t
ちょうど 8, 16, 32, 64 ビットの幅を持つ、パディングのない、負の値に2の補数を使用する、符号付き整数型 (処理系がそのような型を直接サポートする場合のみ提供されます)
int_fast8_t
int_fast16_t
int_fast32_t
int_fast64_t
少なくとも 8, 16, 32, 64 ビットの幅を持つ最も高速な符号付き整数型
int_least8_t
int_least16_t
int_least32_t
int_least64_t
少なくとも 8, 16, 32, 64 ビットの幅を持つ最も小さな符号付き整数型
intmax_t 最も大きな幅の整数型
intptr_t ポインタを保持できる整数型
uint8_t
uint16_t
uint32_t
uint64_t
ちょうど 8, 16, 32, 64 ビットの幅を持つ符号なし整数型 (処理系がそのような型を直接サポートする場合のみ提供されます)
uint_fast8_t
uint_fast16_t
uint_fast32_t
uint_fast64_t
少なくとも 8, 16, 32, 64 ビットの幅を持つ最も高速な符号なし整数型
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
少なくとも 8, 16, 32, 64 ビットの幅を持つ最も小さな符号なし整数型
uintmax_t 最も大きな幅の符号なし整数型
uintptr_t ポインタを保持できる符号なし整数型

[編集] マクロ定数

ヘッダ <stdint.h> で定義
符号付き整数 : 最小値
INT8_MININT16_MININT32_MININT64_MIN
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
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_MAXUINT16_MAXUINT32_MAXUINT64_MAX
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 ファミリーの関数で使用するための書式定数

int または
unsigned int 用の
対応する指定子
説明 データ型用のマクロ




[u]intx_t




[u]int_leastx_t
[u]int_fastx_t
[u]intmax_t
[u]intptr_t
x = 8, 16, 32 または 64
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 ファミリーの関数で使用するための書式定数

int または
unsigned int 用の
対応する指定子
説明 データ型用のマクロ




[u]intx_t




[u]int_leastx_t
[u]int_fastx_t
[u]intmax_t
[u]intptr_t
x = 8, 16, 32 または 64
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

[編集]

#include <stdio.h>
#include <inttypes.h>
 
int main(void)
{
    printf("%zu\n", sizeof(int64_t));
    printf("%s\n", PRId64);
    printf("%+"PRId64"\n", INT64_MIN);
    printf("%+"PRId64"\n", INT64_MAX);
 
    int64_t n = 7;
    printf("%+"PRId64"\n", n);
}

出力例:

8
lld
-9223372036854775808
+9223372036854775807
+7

[編集] 関連項目

固定幅の整数型C++リファレンス