閱讀492 返回首頁    go 阿裏雲 go 技術社區[雲棲]


C編譯時`true'+undeclared+(first+use+in+this+function)

原文:https://liuzhigong.blog.163.com/blog/static/178272375201121664244437/


在編譯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、自己進行一個宏定義:
 typedef enum __bool { false = 0, true = 1, } bool;
c90是沒有bool的,因此支持c90的dev-c++當然也沒有。想在c90裏用bool,可以自行用宏進行定義。 
c99支持bool,用支持c99的編譯器例如gcc就可以的。


最後更新:2017-04-02 06:52:01

  上一篇:go Android 中文件類型與MIME的匹配表
  下一篇:go 《Java 本地接口規範》-JNI 的類型和數據結構