每日一問7 bool和BOOL的區別

2022-09-23 06:47:10 字數 893 閱讀 3418

bool為int 型;bool為布林型。

bool只有一個位元組;bool長度根據實際環境確定,一般為4位元組。

bool取值false和true,是0和1的區別。給bool賦值時,除了false和true,可用任何整型的資料如int,char,double等,但bool型資料只會把0以及0.0識別為false,其他識別為true。

bool是微軟為了相容問題而定義的,包含在標頭檔案 windows.h中,typedef int bool,是一個三值邏輯,true/false/error,返回值大於0的整數為true,等於0為false,-1為error。

#include#includeusing namespace std;

int main() {

bool a = -100;

bool b = 4;

bool c = 0;

cout << a << ends << b << ends << c 執行結果如下:

可以看出,bool的取值只有false和true,非零值被轉為true,零被轉為false。

bool是int型,可取所有int值,當值為0時,可認為時false,當值為1時,可看作true。這裡可以看看false/true在windef.h的定義:

#ifndef false

#define false 0

#endif

#ifndef true

#define true 1

#endif

bool是微軟定義的typedef int bool,用途是解決程式在c與c++中環境的差異。