分析 BOOL & bool

一、BOOL 和 bool 來歷

在C語言中,沒有bool和BOOL這兩個關鍵字的,如果要使用,除非你自己定義。但是在coder的日常使用中,有太多的應用場景需要判斷是是非非,所有coder需要經常定義這個表徵是非的“關鍵字”。能與時俱進的語言纔是有活力的語言。在C++中引入了bool關鍵字,但是大家平常也會看到或者使用BOOL,這又是怎麼回事呢?答曰:這是微軟自己定義的。就拿MFC來說,在頭文件WTYPES.H和WINDEF.H中的定義如下:

typedef long BOOL; //WTYPE.H
typedef int    BOOL; //WINDEF.H

       從上面的分析可以看出,bool是真正的布爾型,而BOOL不是真正意義上的布爾型,準確的說應該是整形。


二、BOOL 和 bool 的長度

        bool型的長度是1個字節,而BOOL型的長度是4個字節(不同的編譯器,分配的字節數可能有出入。這裏以MFC爲例)。

	bool bIsOk = false;
	BOOL bIsRunning = FALSE;
	
	int nSize = sizeof(bIsOk);
	int nLen = sizeof(bIsRunning);

         可以在內存看到,變量nSize和nLen的長度分別是1 和 4.


三、取值不同

        bool的取值爲true,或者false,是1或者0,而BOOL的取值爲TRUE或者FALSE,,表示非零,或者零。


四、注意

     在使用的過程切勿將兩者混用,比如bool型的賦值爲TRUE或者FALSE,而BOOL型的賦值爲true或者false,這些都是不行的。




發佈了6 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章