Share via


bool (C++)

這個關鍵字會是內建的型別。 這個型別的變數可以是值 ,則為 true,則為 false。 條件運算式具有型別bool ,因此有型別的值bool。 例如, i!=0現在會有 ,則為 true,則為 false 的值而定i。

,則為 true,則為 false 有下列的關聯性:

!false == true
!true == false

在下列的陳述式:

if (condexpr1) statement1; 

如果condexpr1是 ,則為 true, statement1碼一定會執行。 如果condexpr1是 ,則為 false, statement1永遠不會執行。

前置詞或後置++運算子已套用至型別的變數bool,此變數設為 ,則為 true。 後置或首碼--運算子無法套用到此型別的變數。

bool型別參與整數提升。 型別的 r-value bool可以轉換為型別的 r-value int,與 ,則為 false 成為零和 ,則為 true 也成為更的一個。 為不同的型別, bool參與多載解析。

Microsoft 專有的

在 Visual C + + 4.2,包含標準 C++ 標頭檔typedef相等的bool與int。 在 Visual C++ 5.0 及更新的版本, bool實作為內建類型大小為 1 位元組。 這表示所呼叫的 Visual C++ 4.2 sizeof(bool) ,會產生 4,而在 Visual C++ 5.0 及更新的版本,同一個呼叫會產生 1。 這可能會造成記憶體損毀問題若您已定義型別的結構成員bool和 (或在 Visual C++ 4.2,而且混用物件的檔案 (OBJ)) 以 4.2 及 5.0 或更新版本的編譯器所建置的 Dll。

__BOOL_DEFINED 巨集可用於自動換行的程式碼,取決於是否bool支援。

範例

// bool.cpp
#include <stdio.h>

int main()
{
    #if !defined(__BOOL_DEFINED)
        printf_s("bool is not supported\n");
    #elif defined(__BOOL_DEFINED)
    printf_s("bool is supported\n");
    #endif
}
  

請參閱

參考

C + + 關鍵字

主要資料型別 (C++)