1、型別不同
bool為int型,微軟自定義型別:typedef int bool;
bool為布林型,為c++標準的資料型別
2、長度不同
bool只有乙個位元組
bool長度視實際環境來定,一般可認為是4個位元組,因為它本身是int型
3、取值不同
bool取值false和true,是0和1的區別
bool取值false和true,是0和非0的區別
如果數個bool物件列在一起,可能會各佔乙個bit,這取決於編譯器。
bool是微軟定義的typedef int bool(在windef.h中)。與bool不同,它是乙個三值邏輯,
true/false/error,定義如下:(afx.h)
#define false 0
#define true 1
#define error 0
win32 api中很多返回值為bool的函式都是三值邏輯。比如getmessage().
例如:bool x=3; //告警
bool x=1; //正確
bool x=3; //正確
bool x=3.3; //告警
bool型別可以賦值給bool型別,但是bool型別賦值給bool型別會告警
布林型變數bool
bool是布林型變數,也就是邏輯型變數的定義符,類似於float,double等,只不過float定義浮點型,double定義雙精度浮點型。
布林型變數的值只有真 (true) 和假(false)。
布林型變數可用於邏輯表示式,也就是「或」「與」「非」之類的邏輯運算和大於小於之類的關係運算,邏輯表示式運算結果為真或為假。
bool可用於定義函式型別為布林型,函式裡可以有 return true; return false 之類的語句。
布林型運算結果常用於條件語句,假設布林變數名字為flag,它與零值比較的標準if語句如下:
if (flag) //表示flag為真
if (!flag) //表示flag為假
其它的用法都屬於不良風格,例如:
if (flag == true)
if (flag == 1 )
if (flag == false)
if (flag == 0)
由以上可知 bool佔4個位元組,bool佔1個位元組。來以為計算機處理1個位元組比處理4個位元組快。其實不時這樣的。由於現在的cpu都是32位的,所以cpu一次處理4個位元組,那麼處理1個位元組需要額外的處理。所以效率就低。
typedef char bool
typedef dword bool
BOOL和bool的區別
bool和bool的區別 1 型別不同 bool為int型 bool為布林型 2 長度不同 bool只有乙個位元組 bool長度視實際環境來定,一般可認為是4個位元組 3 取值不同 bool取值false和true,是0和1的區別 bool取值false和true,是0和非0的區別而bool是標準c...
BOOL和bool的區別
一 1 型別不同 bool為int型 bool為布林型 2 長度不同 bool只有乙個位元組 bool長度視實際環境來定,一般可認為是4個位元組 3 取值不同 bool取值false和true,是0和1的區別 bool取值false和true,是0和非0的區別 二 bool是標準c 資料型別,可取值...
BOOL和bool的區別
一 1 型別不同 bool為int型 bool為布林型 2 長度不同 bool只有乙個位元組 bool長度視實際環境來定,一般可認為是4個位元組 3 取值不同 bool取值false和true,是0和1的區別 bool取值false和true,是0和非0的區別 二 bool是標準c 資料型別,可取值...