回答:
<stdbool.h>
ヘッダーを含める
#include <stdbool.h>
int main(void){
bool b = false;
}
マクロtrue
とはfalse
に拡大1
し、0
それぞれ。
セクションの7.16
ブール型と値< stdbool.h >
- 1ヘッダーは
<stdbool.h>
4つのマクロを定義します。- 2マクロ
- boolは_Boolに展開されます。
- 3残りの3つのマクロは、#ifプリプロセスディレクティブでの使用に適しています。彼らです
- true:整数定数1に展開されます
- false:整数定数0に展開します。
- __bool_true_false_are_definedは整数定数1に展開されます。
- 4 7.1.3の規定にかかわらず、プログラムはマクロの定義を解除し、場合によってはマクロbool、true、falseを再定義する可能性があります。
DaniWebにあるこの関連スレッドの回答をチェックしてください。
参照しやすいように、ここで抽出して引用しました:-
_Bool:C99のブール型。_Boolを直接使用することは、bool、true、またはfalseのマクロをすでに定義しているレガシーコードを維持している場合にのみお勧めします。それ以外の場合、これらのマクロは
<stdbool.h>
ヘッダーで標準化されます。そのヘッダーを含めれば、C ++と同じようにboolを使用できます。
#include <stdio.h>
#include <stdbool.h>
int main ( void )
{
bool b = true;
if ( b )
printf ( "Yes\n" );
else
printf ( "No\n" );
return 0;
}
_Bool
とともに存在する理由の説明ですbool
。それを理解するのに非常に役立ちます。
_Bool
(代入、キャストなどによる)への変換は、式の前にを付けることによって効果的に行われることにも注意してください!!
。