web-dev-qa-db-ja.com

C99ブールデータ型?

C99ブールデータ型とは何ですか?

88
Eonil

<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を未定義にして、おそらく再定義する場合があります。
106
Prasoon Saurav

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

46
evandrix