【C++Builder】C ランタイムライブラリリファレンス (stdint.h)

# 整数型 (Standard Integer)

| ヘッダ<br>ファイル | [stdint.h](https://docwiki.embarcadero.com/RADStudio/ja/Stdint.h%EF%BC%9A%E3%82%A4%E3%83%B3%E3%83%87%E3%83%83%E3%82%AF%E3%82%B9) |
|:---|:---|
| 規格 | C99 |
| 概要 | 指定した幅をもつ幾つかの整数型を宣言し、それらの宣言に対応するマクロの集合を定義する。フリースタンディング環境で利用可能。 |

## プラグマ

## 型

### 厳密幅整数型

詰め物のない指定されたビット幅をもつ固定幅整数型です。オプションですが、処理系が 8, 16, 32, 64 ビットの型を持つ時は必ず用意されています。

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| int8_t        | int16_t        | int32_t        | int64_t        | 厳密なサイズを持つ符号付き整数型。 |
| uint8_t       | uint16_t        | uint32_t        | uint64_t        | 厳密なサイズを持つ符号なし整数型。 |

### 最小幅整数型

指定されたビット幅以上で最小のビット幅を持つ固定幅整数型です。少なくとも 8, 16, 32, 64 ビットの型が用意されています。

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| int_least8_t  | int_least16_t  | int_least32_t  | int_least64_t  | 最小のサイズを持つ符号付き整数型 |
| uint_least8_t | uint_least16_t  | uint_least32_t  | uint_least64_t  | 最小のサイズを持つ符号なし整数型  |

### 最速整数型

指定されたビット幅以上で最速の演算が可能な固定幅整数型です。少なくとも 8, 16, 32, 64 ビットの型が用意されています。

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| int_fast8_t   | int_fast16_t   | int_fast32_t   | int_fast64_t   | 最も演算の速い最小のサイズを持つ符号付き整数型 |
| uint_fast8_t  | uint_fast16_t   | uint_fast32_t   | uint_fast64_t   | 最も演算の速い最小のサイズを持つ符号なし整数型  |

### ポインタサイズ整数型

ポインタを格納可能な整数型です。
                               
| 名前 | 機能 |
|:---|:---|
| intptr_t  | ポインタを格納可能な符号付き整数型 | 
| uintptr_t  | ポインタを格納可能な符号なし整数型 | 


### 最大整数型

処理系が定義している最大の整数型です。

| 名前 | 機能 |
|:---|:---|
| intmax_t  | 最も大きなサイズを持つ符号付き整数型 | 
| uintmax_t | 最も大きなサイズを持つ符号なし整数型 | 


## マクロ

### 厳密幅整数型の最小値と最大値

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| INT8_MIN        | INT16_MIN        | INT32_MIN        | INT64_MIN        | 符号付き厳密幅整数型の最小値。 |
| INT8_MAX        | INT16_MAX        | INT32_MAX        | INT64_MAX        | 符号付き厳密幅整数型の最大値。 |
| UINT8_MIN        | UINT16_MIN        | UINT32_MIN        | UINT64_MIN        | 符号なし厳密幅整数型の最小値。 |
| UINT8_MAX        | UINT16_MAX        | UINT32_MAX        | UINT64_MAX        | 符号なし厳密幅整数型の最大値。 |

### 最小幅整数型の最小値と最大値

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| INT_LEAST8_MIN        | INT_LEAST16_MIN        | INT_LEAST32_MIN        | INT_LEAST64_MIN        | 符号付き最小幅整数型の最小値。 |
| INT_LEAST8_MAX        | INT_LEAST16_MAX        | INT_LEAST32_MAX        | INT_LEAST64_MAX        | 符号付き最小幅整数型の最大値。 |
| UINT_LEAST8_MIN        | UINT_LEAST16_MIN        | UINT_LEAST32_MIN        | UINT_LEAST64_MIN        | 符号なし最小幅整数型の最小値。 |
| UINT_LEAST8_MAX        | UINT_LEAST16_MAX        | UINT_LEAST32_MAX        | UINT_LEAST64_MAX        | 符号なし最小幅整数型の最大値。 |


### 最速整数型の最小値と最大値

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| INT_FAST8_MIN        | INT_FAST16_MIN        | INT_FAST32_MIN        | INT_FAST64_MIN        | 符号付き最速整数型の最小値。 |
| INT_FAST8_MAX        | INT_FAST16_MAX        | INT_FAST32_MAX        | INT_FAST64_MAX        | 符号付き最速整数型の最大値。 |
| UINT_FAST8_MIN        | UINT_FAST16_MIN        | UINT_FAST32_MIN        | UINT_FAST64_MIN        | 符号なし最速整数型の最小値。 |
| UINT_FAST8_MAX        | UINT_FAST16_MAX        | UINT_FAST32_MAX        | UINT_FAST64_MAX        | 符号なし最速整数型の最大値。 |


### ポインタサイズ整数型の最小値と最大値
                               
| 最小値 | 最大値 | 機能 |
|:---|:---|:---|
| INTPTR_MIN  | INTPTR_MAX  | 符号付きポインタサイズ整数型の最小値と最大値。 | 
| UINTPTR_MIN | UINTPTR_MAX | 符号なしポインタサイズ整数型の最小値と最大値。 | 

### 最大整数型の最小値と最大値
                               
| 最小値 | 最大値 | 機能 |
|:---|:---|:---|
| INTMAX_MIN  | INTMAX_MAX  | 符号付き最大整数型の最小値と最大値。 | 
| UINTMAX_MIN | UINTMAX_MAX | 符号なし最大整数型の最小値と最大値。 | 

### その他の型の下限値と上限値

| 下限値 | 上限値 | 機能 |
|:---|:---|:---|
| PTRDIFF_MIN | PTRDIFF_MAX | [ptrdiff_t](https://qiita.com/ht_deko/items/3991919f9474ad69b6e5) の下限値と上限値。 |
| SIG_ATOMIC_MIN | SIG_ATOMIC_MAX | [sig_atomic_t](https://qiita.com/ht_deko/items/a0b174ba379509c051fb) の下限値と上限値。|
|  | SIZE_MAX | [size_t](https://qiita.com/ht_deko/items/3991919f9474ad69b6e5) の上限値。 |
| WCHAR_MIN | WCHAR_MAX | [wchar_t](https://qiita.com/ht_deko/items/3991919f9474ad69b6e5) の下限値と上限値。 |
| WINT_MIN | WINT_MAX | [wint_t](https://qiita.com/ht_deko/items/5eaf661c0b3452845672) の下限値と上限値。 |

## 引数付きマクロ

| 8 bit | 16 bit | 32 bit | 64 bit | 機能 |
|:---|:---|:---|:---|:---|
| INT8_C()        | INT16_C()        | INT32_C()        | INT64_C()        | x を指定したサイズの符号付き<br>最小幅整数型定数に変換します。 |
| UINT8_C()        | UINT16_C()        | UINT32_C()        | UINT64_C()        | x を指定したサイズの符号なし<br>最小幅整数型定数に変換します。 |

| 名前 | 機能 |
|:---|:---|
| INTMAX_C()  | x を符号付き最大整数型定数に変換します。 | 
| UINTMAX_C() | x を符号なし最大整数型定数に変換します。 | 

:::note
定数マクロです。指定できる引数は 8進、10進、16進定数で、指定した型の定数に展開されます。例えば INT64_C(1) はデータ型モデルによって `1L` あるいは `1LL` に展開されます。
:::

**See also:**

 - [16, 32, 64 ビットデータモデル (Wikipedia)](https://ja.wikipedia.org/wiki/64%E3%83%93%E3%83%83%E3%83%88#64%E3%83%93%E3%83%83%E3%83%88%E3%83%87%E3%83%BC%E3%82%BF%E3%83%A2%E3%83%87%E3%83%AB)

## 関数

## 資料

 - [C 言語 / 標準ライブラリ / stdint.h (Wikibooks)](https://ja.wikibooks.org/wiki/C%E8%A8%80%E8%AA%9E/%E6%A8%99%E6%BA%96%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA/stdint.h)
 - [z/OS C/C++ ランタイム・ライブラリー・リファレンス stdint.h &#x2014; 整数型 (IBM)](https://www.ibm.com/docs/ja/zos/3.1.0?topic=files-stdinth-integer-types)
 - [C 言語の標準ヘッダ一覧 stdint.h (C 言語)](http://www.c-lang.org/detail/stdint_h.html)


---

[&#x21E6; インデックスへ](https://qiita.com/ht_deko/items/31f4b37daa97270e2416)

---