ISO / IEC 9899:2018(C18)では、7.20.1.3に規定されています。
7.20.1.3最短の最小幅整数型
1次の各タイプは、少なくとも指定された幅を持つすべての整数型の中で動作するのに通常最も高速な整数型を指定しています268)。
2 typedef名
int_fastN_t
は、幅がN以上uint_fastN_t
の最速の符号付き整数型を示します。typedef名は、幅がN以上の最速の符号なし整数型を示します。3次のタイプが必要です。
int_fast8_t
、int_fast16_t
、int_fast32_t
、int_fast64_t
、uint_fast8_t
、uint_fast16_t
、uint_fast32_t
、uint_fast64_t
このフォームの他のすべてのタイプはオプションです。
268)指定されたタイプがすべての目的で最速であるとは限りません。実装が1つの型を選択する明確な根拠がない場合、符号型と幅の要件を満たす整数型を選択するだけです。
しかし、これらの「高速」整数型がより高速である理由は明記されていません。
- これらの高速整数型が他の整数型よりも速いのはなぜですか?
高速整数型はC ++ 17のヘッダーファイルでも利用できるため、C ++で質問にタグを付けましたcstdint
。残念ながら、ISO / IEC 14882:2017(C ++ 17)では、その説明についてそのようなセクションはありません。それ以外の場合は質問の本文にそのセクションを実装しました。
情報:Cでは、のヘッダーファイルで宣言されていますstdint.h
。
typedef
ステートメントです。したがって、通常は標準ライブラリレベルで行われます。どのような彼らの当然のことながら、C標準プット本当制限しないtypedef
ので、例えば典型的な実装を作ることです-への32ビットシステムではなく、架空のコンパイラができ、たとえば実装するいくつかの空想を行うには組み込み型との約束をそのタイプの変数に対してケースバイケースで最速のマシンタイプを選択するための最適化、そしてライブラリはそれを可能にします。int_fast32_t
typedef
int
__int_fast
typedef