私はただCでコードを書いていましたが、ブール/ブールデータ型を持っていないことがわかりました。 boolean/boolデータ型を返す機能を提供するために含めることができるCライブラリはありますか?
C99をサポートするコンパイラがある場合は、次のことができます。
#include <stdbool.h>
それ以外の場合は、必要に応じて独自に定義できます。使用方法(およびコードをC++としてコンパイルできるようにするかどうか)に応じて、実装は次のように簡単になります。
#define bool int
#define true 1
#define false 0
ただし、私の意見では、int
を使用し、ゼロを使用してfalseを、非ゼロを使用してtrueを使用することもできます。それが通常Cで行われる方法です。
実際、C99にはブールデータ型がありますが、古いバージョンを使用する必要がある場合は、型を定義するだけです。
typedef enum {false=0, true=1} bool;
C99にはbool
タイプがあります。それを使用するには、
#include <stdbool.h>
James McNellisの答えに代わるものとして、私は常にマクロの代わりにブール型の列挙を使用しようとします:typedef enum bool {false=0; true=1;} bool;
。より安全なb/cであり、コンパイラに型チェックを実行させ、マクロ展開の競合を排除します。
C99導入_Bool
組み込みの純粋なブール型として。番号 #include
sが必要:
int main(void)
{
_Bool b = 1;
b = 0;
}
真のC99(またはそれ以降)準拠のCコンパイラでは、上記のコードは完全に正常にコンパイルされます。
これには列挙型を使用できます。ライブラリは必要ありません。例えば
enum {false,true};
false
の値は0になり、true
の値は1になります。