ブール変数は、整数値 0 または 1、もしくは C++ リテラル true および false を保持する場合に使用できます。これらのリテラルは 、算術値が必要なときにいつでも整数 0 および 1 へ暗黙的にプロモートされます。 ブール変数を宣言する型指定子は、C++ では bool です。 C でブール変数を宣言するには、 ヘッダー・ファイル <stdbool.h> で定義される bool マクロを使用します。ブール変数は、指定子 signed、unsigned、short、または long によって さらに修飾できません。
ブール型は、符号がなく、標準符号なし整数型のカテゴリーにおいて最低
にランク付けされます。単純な割り当てでは、左方オペランドが
ブール型であれば、右方オペランドは算術型またはポインターのいずれかである必要があります。
ブール型として宣言されたオブジェクトは、1 バイトのストレージ・スペースを使用します。こ
れは値 0 または 1 を保持するのに
十分な大きさです。
C では、ブール型をビット・フィールド型として使用することができます。ブール型のゼロ以外の幅の ビット・フィールドが値 0 または 1 を保持する場合、ビット・フィールドの値は、それぞれ 0 ま たは 1 と同等比較されます。
トークン bool は、ベクトル宣言コンテキストで使用される場合と、AltiVec
言語拡張機能が使用可能になっている場合にのみ、キーワードとして認識されます。
_Bool では、4 バイトのストレージ・スペースを使用し、4 バイトで位置合わせされます。
型 bool の変数は 2 つの値のどちらか、つまり true または false を保持できます。型 bool の右辺値は、整数型へプロモートできます。false の bool 右辺値は、値 0 へプロモートでき、true の bool 右辺値は、値 1 へプロモートされます。
同等、関連、および論理の各演算子の結果は、型 bool の結果になり ます。つまり ブール定数 true または false のいずれになります。
型指定子 bool およびリテラル true および false を使用し て、ブール論理テストを行います。ブール論理テスト は、論理演算の結果を表すために使用されます。 次に例を示します。
bool f(int a, int b) { return a==b; }a と b が同じ値を持っている場合、f() は true を戻します。 そうでなければ、f() は false を戻します。
関連参照