BOOL與bool的區別

2021-09-08 03:29:00 字數 1140 閱讀 1496

1、型別不同

bool     為布林型

bool   為int型

2、長度不同

bool     只有乙個位元組

bool   長度視實際環境來定,一般可認為是int型別的大小4個位元組

3、取值不同

bool       取值false和true,是0和1的區別

bool    取值false和true,是0和非0的區別

4、bool是標準c/c++資料型別,可取值true和false。單獨佔乙個位元組,如果數個bool物件列在一起,可能會各佔乙個bit,這取決於編譯器。

bool是微軟定義的,用途是解決程式在c與c++中環境的差異,以下是false/true在windef.h的定義:

#ifndef false

#define false 0

#endif

#ifndef true

#define true 1

#endif

bool與bool不同,它是乙個三值邏輯,true/false/error,返回值為》0的整數為true,0為false,-1為error。win32 api中很多返回值為bool的函式都是三值邏輯。比如getmessage。

所以兩者不一樣的,只不過我們在使用中沒有這種感覺,因為c++會幫你做隱式轉換。

5、例子

bool x=3; //警告

warning c4305: 'initializing' : truncation from 'const int' to 'bool'

bool x=1;                    //正確

bool x=3;                 //正確

bool x=3.3;                //警告

warning c4244: 'initializing' : conversion from 'const double' to 'int', possible loss of data

BOOL與bool的區別

1 型別不同 bool為int型 bool為布林型 2 長度不同 bool只有乙個位元組 bool長度視實際環境來定,一般可認為是4個位元組 3 取值不同 bool取值false和true,是0和1的區別 bool取值false和true,是0和非0的區別 bool 只是乙個巨集,不是基本的資料型別...

BOOL與bool的區別

1 型別不同 bool為int型 bool為布林型 2 長度不同 bool只有乙個位元組 bool長度視實際環境來定,一般可認為是4個位元組 3 取值不同 bool取值false和true,是0和1的區別 bool取值false和true,是0和非0的區別 bool是標準c 資料型別,可取值true...

C 中BOOL 與bool的區別

bool 定義 typedef int bool define false 0 define true 1 不能完全過載,如 file.h void f int ok void f bool ok file.cpp void f int ok void f bool 錯誤,重新宣告 而bool fa...