1. ホーム
  2. c++

[解決済み] uint_fast32_tとは何ですか、なぜ通常のintやuint32_tの代わりに使うのですか?

2022-07-06 06:59:36

質問

では、なぜ typedef :ed のプリミティブなデータ型は、低レベルの表現を抽象化して理解しやすくするためです ( uint64_t の代わりに long long のように8バイトになります)。

しかし、そこには uint_fast32_t があり、これは同じ typedef と同じ uint32_t . fast"バージョンを使用すると、プログラムは速くなりますか?

どのように解決するのですか?

  • int は、いくつかのプラットフォームでは 16 ビットと小さいかもしれません。アプリケーションにとっては十分ではないかもしれません。
  • uint32_t は存在することが保証されていません。これはオプションで typedef で、ちょうど 32 ビットの符号なし整数型を持っている場合、実装はこれを提供しなければなりません。例えば9ビットのバイトを持つものもあるので、その場合は uint32_t .
  • uint_fast32_t の一種で、意図を明確に示しています。 少なくとも 32 ビットのタイプであり、パフォーマンスの観点から最適です。 uint_fast32_t は実際には64ビットの長さかもしれません。それは実装次第です。

...あるのは uint_fast32_t と同じ typedef を持つ uint32_t ...

あなたが見ているものは、標準ではありません。それは特定の実装 (BlackBerry) です。ですから、そこから推論することはできません。 uint_fast32_t とは常に同じです。 uint32_t .

も参照してください。