ビット版の命令が必要な場合を除き、32ビット版の命令を使うことでコードサイズを削減する。とあるように、64ビット・モードにおいても32bitがほぼほぼデフォルトです。64bit演算を行うためには命令が1バイト長くなり、これによりキャッシュ効率が落ちます。深い話は本書および本章を読まれるといいでしょう。Linux(ClangもGCCも)はint_fast16~32_t=long(64)としたんでしょうね...?残念ながらコンパイラーには選択権はありません。プラットフォームが決定したサイズに従うのみです。3.2に於いてAMD64アーキテクチャについてはint_fast16_t=int_fast32_t=64bitと定められていました。個の銅バッジそうなると、これからも16ビット以上あれば良い整数にはint_fast16_t/int_fast32_tではなくintを使えば良いということになりますね。32ビットなのも、「64bit演算を行うためには命令が1バイト長くなり、これによりキャッシュ効率が落ちます。」と同じ理由で説明できますね。x86/x86-64の32/64ビットモードでは、16ビット演算も、やはり32ビット命令より1バイト多く必要になります(オペランドサイズプリフィックス)。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。