Cコンパイル時 `true 'が宣言されていません(この関数での最初の使用)



C Compile Time Trueundeclared



Cをコンパイルするときにこのエラーが発生することがあります。

'true'宣言されていない(この関数での最初の使用)または `false '宣言されていない(この関数での最初の使用)

つまり、bool、true、falseは宣言されていません。理由は非常に単純です。これは、実際のCにはこれらのキーワードがないためです。cおよび初期のc + +キーワードboolはありませんが、BOOLは組み込み型ではありません。 、渡されるTypedefまたはマクロは通常int型として定義されます。その後、c ++は組み込み型のboolを示し、値はtrue(1)とfalse(0)のみになります。



解決:

1.ファイル名.cをファイル名.cppに変更します。 C ++でコンパイルします。問題ない。
2.マクロ定義を自分で作成します。
typedef enum __bool {false = 0、true = 1、} bool
c90はブール値ではないため、c90をサポートするdev-c ++はブール値ではありません。 c90でboolを使用する場合は、自分で定義できます。
c99はboolをサポートしており、gccなどのc99をサポートするコンパイラーで使用できます。

#include typedef enum __bool { false = 0, true = 1, } bool void main() { bool b = true printf('%d ',b) bool c = false printf('%d ',c) }

転載:https://www.cnblogs.com/muahao/p/7029113.html