#stdint.h

固定幅整数型

stdint.h は、主に次の 3 つのカテゴリを含むいくつかの固定幅整数型のエイリアスを定義します。

  • 完全に指定された幅を持つ整数 intN_t (int32_t など)。
  • int_least8_t など、特定のサイズ以上の幅を持つ整数 int_leastN_t
  • 一定のサイズ以上の幅を持ち、可能な限り高速に処理される整数 int_fastN_t (例: int_fast64_t)。

上記の型はすべて署名されています。型名の前に接頭辞 'u' を追加して、'uint16_t' などの符号なし型を示すことができます。

C 言語標準では、次の型を定義する必要があります。

  • int8_t (オプション) uint8_t (オプション)
  • int16_t (オプション) uint16_t (オプション)
  • int32_t (オプション) uint32_t (オプション)
  • int64_t (オプション) uint64_t (オプション)
  • int_least8_t uint_least8_t
  • int_least16_t uint_least16_t
  • int_least32_t uint_least32_t
  • int_least64_t uint_least64_t
  • int_fast8_t uint_fast8_t
  • int_fast16_t uint_fast16_t
  • int_fast32_t uint_fast32_t
  • int_fast64_t uint_fast64_t

最大幅の整数型

次の 2 つのタイプは、現在のシステムで使用できる最大幅の整数を表します。

-intmax_t -uintmax_t

可能な最大の整数が必要な場合は、上記の型を使用できます。

固定幅の整定数

パラメーターを含む次のマクロは、固定幅の整定定数を生成できます。

  • INT8_C(x) UINT8_C(x)
  • INT16_C(x) UINT16_C(x)
  • INT32_C(x) UINT32_C(x)
  • INT64_C(x) UINT64_C(x)
  • INTMAX_C(x) UINTMAX_C(x)

以下に使用例を示します。

uint16_t x = UINT16_C(12);
intmax_t y = INTMAX_C(3490);

固定幅の整数制限値

次のマクロは、固定幅の整数の最大値と最小値を表します。

  • INT8_MAX INT8_MIN UINT8_MAX
  • INT16_MAX INT16_MIN UINT16_MAX
  • INT32_MAX INT32_MIN UINT32_MAX
  • INT64_MAX INT64_MIN UINT64_MAX
  • INT_LEAST8_MAX INT_LEAST8_MIN UINT_LEAST8_MAX
  • INT_LEAST16_MAX INT_LEAST16_MIN UINT_LEAST16_MAX
  • INT_LEAST32_MAX INT_LEAST32_MIN UINT_LEAST32_MAX
  • INT_LEAST64_MAX INT_LEAST64_MIN UINT_LEAST64_MAX
  • INT_FAST8_MAX INT_FAST8_MIN UINT_FAST8_MAX
  • INT_FAST16_MAX INT_FAST16_MIN UINT_FAST16_MAX
  • INT_FAST32_MAX INT_FAST32_MIN UINT_FAST32_MAX
  • INT_FAST64_MAX INT_FAST64_MIN UINT_FAST64_MAX
  • INTMAX_MAX INTMAX_MIN UINTMAX_MAX

すべての符号なし整数型の最小値は 0 であるため、対応するマクロは存在しないことに注意してください。

プレースホルダー

C 言語では、ヘッダー ファイル inttypes.h で上記の型の printf() および scanf() のプレースホルダーも定義します。「inttypes.h」の章を参照してください。


作者: wangdoc

アドレス: https://wangdoc.com/

ライセンス: クリエイティブ・コモンズ 3.0