Bool型はInt型よりも小さいため、メモリ内の使用領域が少なくなります。コンパイルしているシステムに応じて、Intは4〜8バイトになりますが、Boolは1バイトになります(このMSDN記事をご覧ください)。
これをKISSのいくつかの側面と優れたプログラム設計と組み合わせると、2つの値しか持たない変数を格納するためにブールを使用する方が良い理由が明らかになります。
2つの異なる値のうち1つだけを保存する必要があると確信しているのに、なぜ広範囲の値を保存できるオブジェクトで物事が複雑になるのでしょうか?
75を格納すると、intを使用するシステムで何が起こりますか?追加の条件を追加した場合
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
または
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
その後、この状況について説明します。しかし、もしあなたがそうでないなら、あなたはそうではありません。
また、(intの値をどのように変更するかに応じて)バッファオーバーランが発生し、値が0またはintの下限(「ターゲットアーキテクチャに応じて、 -127〜-9,223,372,036,854,775,808の領域)コードはどうなりますか?
ただし、boolを使用した場合は、次のようなものを使用できます。
if(continueBool == true)
return true;
else
return false;
あるいは:
return (continueBool== true) ? true : false;
あるいは:
return continueBool;
コンパイラーによっては、Boolsを使用してマップされたtrue / false値を保管するコードで実行できる最適化がある場合があります。一方、マップされたtrue / false値を保存するために使用されるIntに対して実行できる最適化がない場合があります。
また、C ++(C、Assembly、およびFORTRANとともに)を使用して、非常に効率的で小さくて高速なコードを作成することも覚えておく必要があります。したがって、このインスタンスでBoolを使用することをお勧めします-特に変数、メモリ、キャッシュ、またはプロセッサ時間の使用についてマークされている場合。
同様の質問は、整数(値)をfloatに格納するのはなぜですか?答え:意味がないので、すべきではありません。
簡単な説明:教師/講師/講師/教授として、さまざまな価値タイプのサイズを(見逃した場合に)検討し、それらがソフトウェア開発で重要である理由を説明します。
それが出発点として役立つことを願っています(また、それが教訓的なものとして出会わないことを願っています)
int
整数を格納することであり、aの目的はbool
ブール値(true
またはfalse
)を格納することです。bool
IMO を使用すると、IMOを使用するよりもはるかに使いやすくなりint
ます。