Cコンパイル時`true'undeclared(first use in this function)

648 ワード

C言語のコンパイル中に、次のようなエラーメッセージが表示されることがあります.
`true' undeclared (first use in this function) or `false' undeclared (first use in this function)
つまりbool、true、falseはundeclaredなので、理由は簡単です.本当のCにはこれらのキーワードはありません.cと初期のc++にはキーワードboolはありません.BOOLを使ってもいいですが、BOOLは内蔵タイプではありません.typedefやマクロで定義されています.通常intタイプと定義されています.その後のc++には内蔵タイプboolが現れ、値はtrue(1)とfalse(0)しかありません.
解決方法:
1、ファイル名をcファイル名に変更する.cpp、C++でコンパイルすれば問題ありません
2、自分でマクロ定義を行う:
typedefenum __bool {false = 0,true =1, }bool;

c 90はboolがないので、c 90をサポートするdev-c++ももちろんありません.c 90でboolを使いたい場合は、自分でマクロで定義できます.c 99はboolをサポートし、c 99をサポートするコンパイラ、例えばgccでよい.