ブール変数の最適なサイズはデータの自然な幅であると私は信じるようになりました。つまり、C /C++ではintです。したがって、最近のプロセッサの場合、これは通常32ビットです。たとえば、マシンレベルでバイトとして宣言するには、32ビットのフェッチとマスクが必要です。
ただし、iOSのBOOLは8ビットであることがわかりました。私は、バイトを使用する人々が8ビットプロセッサからの残りのアイデアを使用していると想定していました。
この質問は用途によって異なり、ほとんどの場合、言語で定義されたブール値が最善の策ですが、外部ソースから到着するコードを変換する場合や、必要な場合など、独自に定義する必要がある場合があります。クロスプラットフォームコードを記述します。
ブール値がシリアルストリームにパックされる場合、イーサネットなどのシリアル回線を介して送信したり、格納したりする場合は、ブール値をより少ないビットでパックすることが最適な場合があることも重要です。しかし、プロセッサの最適なサイズでパックおよびアンパックするのが最適である可能性が高いと思います。
だから私の質問は、32ビットプロセッサのブール値の最適なサイズは32ビットであると考えるのは正しいですか?もしそうなら、iOSはなぜ8ビットを使用するのですか?