C99ブールデータ型?


回答:


109

<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を再定義する可能性があります。

17
_Bool(代入、キャストなどによる)への変換は、式の前にを付けることによって効果的に行われることにも注意してください!!
R .. GitHub ICE HELPING ICEを停止する'22

52

DaniWebにあるこの関連スレッドの回答をチェックしてください。

参照しやすいように、ここで抽出して引用しました:-


c99での新しいキーワードの使用

_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;
}


18
+1は、_Boolとともに存在する理由の説明ですbool。それを理解するのに非常に役立ちます。
eonil 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.