C 中BOOL 與bool的區別

2021-04-15 12:45:19 字數 757 閱讀 4501

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(false,true)是c++內建的型別,可以避免上述的問題。

bool在c++裡是占用1位元組,而bool是int型別,int型別的大小是視具體環境而定的;所以來說:false/true只占用1個位元組,而 true/false視具體環境而言.

以下是bool在windef.h中的定義:

typedef int bool;

false/true是標準c++語言裡新增的關鍵字,而false/true是通過#define,這要用途是解決程式在c與c++中環境的差異,以下是false/true在windef.h的定義:

#ifndef false

#define false 0

#endif

#ifndef true

#define true 1

#endif

也就是說false/true是int型別,而false/true是bool型別;所以兩者不一樣的,只不過我們在使用中沒有這種感覺,因為c++會幫你做隱式轉換。 

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...

BOOL與bool的區別

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