C99からは、C言語にも真理値型が導入されました。本来であれば、その型名はC++と同じ「bool」にしたかったのでしょうが、既存のソースコードの多くは、「bool」型を独自に定義していたため、混乱を避けるために、予約済み識別子であった「_Bool」が真理値型を表す予約語となったようです。 ところが、やはり使い勝手からすると「_Bool」より「bool」の方がよいので、「bool」を使えるようにするために用意されたのが<stdbool.h>です。今回は、この<stdbool.h>についてです。 まず、標準Cライブラリが提供する「bool」(および「true」、「false」)が使用されているかどうかを判別するためのマクロを定義しなければなりません。そのマクロは、__bool_true_false_are_definedです。今回は、このマクロを二重インクルードガードの目的にも流用します。した