私はC++を初めて使用しています。 タイプ、メモリ使用量、アーキテクチャに基づいたメモリサイズの違いについて学習していました。 int32_tのような固定幅型を使うことには欠点はありますか?固定幅タイプを使用しない理由はありますか?
答えて
コードがでないシステムに移植可能にしたい場合は、の32ビット整数型を使用してください。実際には非常に稀ですが、彼らはそこにいます。
C++は、あなたが本当にすべき、あなたのコード内の特定のビット幅を取得するための最もポータブルな方法かもしれないint_leastN_t
とint_fastN_t
タイプにアクセスできるようになりますcstdint
経由C99(およびそれ以降)整数型へのアクセスを持っていますそれについて気になることが起こる。
int
タイプのオリジナルの目的は、実行していたアーキテクチャの自然なサイズを表すことでした。その上で実行されるすべての操作が整数型に対して可能な限り速いと想定することができます。
最近の写真はもっと複雑です。キャッシュ効果またはベクトル命令の最適化は、自然なサイズよりも小さい整数型の使用を優先します。
int
のアルゴリズムがであることが少なくとも以上であることが明らかな場合は、明示的に指定する方がよいでしょう。
'int'は16ビットでなければならず、多くの8ビットプラットフォームがまだ使用されていました。 –
@CarlNorumでも、これらのアーキテクチャでさえも、一般に16ビットのintを扱うための命令がありました。誰もが8ビットが計算に役に立たないことを知っていました。 –
@ MarkRansom 8ビットまたは1バイト整数です。最終的には、十進数で255まで、または16進で0xFFまでカウントできます!私は私の30歳の古くなった電卓は8ビット整数よりも良い仕事をカウントすると思います。 –
など。
は、int_least32_t
は時間を節約するために使用し、スペースを節約時からint_fast32_t
しかし、実際には、私が個人的に使用long
(少なくとも32ビット)およびint
(少なくとも16ビット)を使用するには簡単に入力することができるため、時間を節約できます。
(さらに、int32_t
は、オプションであり、存在することは保証されていません)
- 1. JSONPを使用しない理由はありますか?
- 2. OrientDBを使用しない理由はありますか?
- 3. ワイルドカードを使用しない理由はありますか?
- 4. Boost :: shared_ptrsを使用しない理由はありますか?
- 5. write.fwf()が固定幅セットに従わなかった理由
- 6. 関数にINLINABLEプラグマを使用しない理由はありますか?
- 7. アンドロイドスタジオでロンボクを使用しない理由はありますか
- 8. JavaScriptでStrictモードを使用しない理由はありますか?
- 9. NUnitでAssertionHelperを使用しない理由はありますか?
- 10. UserControlを使用しないパフォーマンス上の理由はありますか?
- 11. Grand Central Dispatchキューでスリープを使用しない理由はありますか?
- 12. Cでは小文字のマクロ定義を使用しない技術的な理由はありますか?
- 13. まだCVSを使用する理由はありますか?
- 14. "var"を放棄しない理由はありますか?
- 15. 私のビューポートにデバイス幅または固定幅を使用する必要があります
- 16. --pruneオプションを常に使用するように 'git fetch'を設定しない理由はありますか?
- 17. ロックファイルをflockで使用する理由はありますか?
- 18. selfキーワードを使用する理由はありますか?
- 19. varをもう使用する理由はありますか?
- 20. [:over @ :?を使用する理由はありますか?
- 21. スウィフトでセレクタを使用する理由はありますか?
- 22. VBAでENUMを使用する理由はありますか?
- 23. MailMerge:固定幅フォントはありませんか?
- 24. 非固定幅フォントでの折り返しのトリックはありますか?
- 25. 固定幅と高さを使用しないCSSサークル
- 26. .NET Framework定義の例外クラスを独自のコードで使用しない理由はありますか?
- 27. CLLocationManagerをグローバル変数に固定しない理由は何ですか?
- 28. 固定幅の区切りに固定幅のテーブルを移動
- 29. eval()を使用する正当な理由はありますか?
- 30. parseIntの代わりにビット演算子を使用しないのが良い理由はありますか?
PCでは、 int32_tを提供していないプラットフォームでも(オプションです)... –
それはすべて意味論です。あなたのコードを読んでいる人々に何を言っていますか?プレーンな 'int'を使うと、それは一般的な整数だと言いますが、それについては特別なことはありません。 'size_t'を使うと、ある種のサイズだと言います。 'int32_t'を使うと、ある種の制限(signednessとsize)に従わなければならない特定の種類の整数データだと言います。 –