1. ホーム
  2. c++

[解決済み] C++:なぜboolは8ビットなのですか?

2022-04-28 05:18:08

質問

C++では、bool型は(私のシステムでは)8ビットの長さがあり、1ビットだけで真偽値を保持できるのはなぜでしょうか?

しかし、32ビットや64ビットのマシンでは、レジスタの幅が32ビットや64ビットで、パフォーマンス上の利点は何でしょうか?

それとも、これらの「歴史的」な理由のひとつなのでしょうか?

解決方法は?

なぜなら、すべてのC++データ型はアドレス指定可能でなければならないからです。

シングルビットへのポインターはどうやって作るのでしょうか?できないでしょう。しかし、あなたは できる バイトへのポインタを作成します。つまり、C++のbooleanは、通常、バイトサイズです。(もっと大きい場合もある。それは実装次第だ。つまり、C++のデータ型は1バイトより小さくはできないのです。)