コンテンツにスキップ

C++/標準ライブラリ/cstdint

出典: フリー教科書『ウィキブックス(Wikibooks)』

はじめに

[編集]

<cstdint> ヘッダーは、C++ の標準ライブラリの一部であり、 特定のビット幅を持つ整数型 と、整数型の限界値を指定するマクロ を提供します。 このヘッダーは、プログラムの移植性向上や、メモリサイズの制約がある環境での開発に役立ちます。

ヘッダーの内容

[編集]

<cstdint> ヘッダーには、大きく分けて以下の内容が定義されています。

符号付き整数型
int8_t, int16_t, int32_t, int64_t: それぞれ 8, 16, 32, 64 ビット幅の符号付き整数型 (省略可能)
int_fast8_t, int_fast16_t, int_fast32_t, int_fast64_t: 最低でも指定ビット幅を持ち、演算が高速な符号付き整数型
int_least8_t, int_least16_t, int_least32_t, int_least64_t: 最低でも指定ビット幅を持つ最小の符号付き整数型
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: 最低でも指定ビット幅を持ち、演算が高速な符号なし整数型
uint_least8_t, uint_least16_t, uint_least32_t, uint_least64_t: 最低でも指定ビット幅を持つ最小の符号なし整数型
uintmax_t: 実現可能な最大の符号なし整数型
uintptr_t: ポインタが格納できる符号なし整数型 (省略可能)
限界値マクロ
各整数型の最小値と最大値を表現するマクロ (省略可能な型に対応するマクロも存在)
注意点
N を用いた型 (intN_t, uintN_t) やマクロは、N が 8, 16, 32, 64 以外の場合はコンパイラの実装に依存して省略される可能性があります。
上記の型やマクロは、C言語の標準ライブラリヘッダー <stdint.h> と同じように定義されています。

使用例

[編集]
C++
#include <cstdint>

auto main() -> int {
    int8_t const value8 = 127;   // 8ビット符号付き整数
    uint16_t const counter = 0;  // 16ビット符号なし整数

    // ...

    return 0;
}

このコードでは、<cstdint> ヘッダーを利用して 8 ビット符号付き整数 (value8) と 16 ビット符号なし整数 (counter) を宣言しています。

まとめ

[編集]

<cstdint> ヘッダーは、プログラムの移植性やメモリ制約下での開発を意識した際に役立つヘッダーです。 特定のビット幅を持つ整数型を利用することで、プログラムの動作をより予測しやすくすることができます。