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
}