C——沒有bool的C語言?


bool static my_var_initialized = false;

  偶然寫出了這樣一句C代碼,環境是visual studio 2012,工程是Compile as C的,竟然報了好幾個錯誤:

  錯誤 1 error C2065: “bool”: 未聲明的標識符 g:\visualstudio\2012\console\helloc\helloc\test.c 12 1 HelloC

  錯誤 5 error C2065: “true”: 未聲明的標識符 g:\visualstudio\2012\console\helloc\helloc\test.c 17 1 HelloC

  寫慣了java C++,突然遇到這個問題就懵了。

  經查證,C99標准以前,C語言里面是沒有bool(布爾)類型的,C++里面才有,這就是說,在C++里面使用bool類型是沒有問題的,bool類型有只有兩個值:true =1 、false=0。C99標准里面定義了bool類型,需要引入頭文件stdbool.h,關於這一點在VS2012中是不行的,include之后會報錯無法打開源文件stdbool.h,不過有前輩已經在gcc 4.3.0上實驗過了,是可行的。

  為了兼容支持各種各樣的編譯器,可以自定義bool:

  1)

#define bool char
#define true 1
#define false 0

  2)

enum BOOL
{
FALSE, TRUE
};


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM