之前一直都沒有注意到,最近在用C語言寫DSP算法時,偶然間發現我函數中定義的bool類型的變量在VC6.0(我主要用它來檢查一下語法錯誤)中編譯居然報錯了,說是bool類型沒有定義。用了這麼久的C和C++了,一直覺得bool這種基本類型,應該是C語言內置的類型,怎麼會沒有定義呢?事實證明,我的想法完全錯誤了。
有了網絡,一切問題都變得那麼容易了,我很容易地搜到了相關的解答。
C語言裡面是沒有bool(布爾)類型的,C++裡面才有,這就是說,在C++裡面使用bool類型是沒有問題的。bool類型有只有兩個值:true =1 、false=0。
但是,C99標准裡面,又定義了bool類型變量。這時,只要引入頭文件 <stdbool.h>,就能在C語言裡面正常使用bool類型。這點我在Fedora9下驗證過了,它自帶的編譯器是 gcc 4.3.0,符合C99標准。但是在VC6.0中,會報找不到頭文件 stdbool.h 的錯誤,看來VC6.0確實比較老了。
所以,為了兼容各種編譯器,還是自己定義吧。^_^
#define bool char
#define ture 1
#define false 0
http://www.cnblogs.com/roucheng/p/css3menu.html
http://roucheng.cnblogs.com/