C言語/標準ライブラリ/stdbool.h

出典: フリー教科書『ウィキブックス(Wikibooks)』

Boolean type and values <stdbool.h>:論理型と論理値[編集]

ヘッダー <stdbool.h> には、4つのマクロが定義されています[1]

マクロ[編集]

bool
キーワード _Bool に展開されます。

残りの3つのマクロは、#if 前処理ディレクティブでの使用に適しています。

true
整数定数の1に展開されます。
false
整数定数の0に展開されます。
__bool_true_false_are_defined
整数の定数1に展開されます。

bool、true、falseというマクロを定義解除して、おそらく再定義する機能は、時代遅れの機能です[2]

C23[編集]

C23では、上述のマクロがキーワードになったので __bool_true_false_are_defined が 1 に定義されているだけで、このマクロも非推奨です[3]。C23では、__STDC_VERSION_XXX_H__ のように機能仕様を示すマクロが提供 されていますが、<stdbool.h> はこのようなマクロは提供されていません。

歴史[編集]

ヘッダー <stdbool.h> は、ISO/IEC 9899:1999(通称:C99)で追加されました。

脚註[編集]

  1. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 210, §7.18 Boolean type and values <stdbool.h>. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  2. ^ N2176 C17 ballot ISO/IEC 9899:2017. ISO/IEC JTC1/SC22/WG14. p. 332, §7.31.9 Boolean type and values <stdbool.h>. オリジナルの2018-12-30時点によるアーカイブ。. https://web.archive.org/web/20181230041359/http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf. 
  3. ^ N3096 working draft — April 1, 2023 ISO/IEC 9899:2023 (E). p. 310, §7.19 Boolean type and values <stdbool.h>. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3096.pdf. 

参考文献[編集]