BOOL是微軟定義的typedef int
BOOL。與bool不同,它是一個三值邏輯,TRUE/FALSE/ERROR,返回值為>0的整數為TRUE,0為FALSE,-1為
ERROR。Win32 API中很多返回值為BOOL的函數都是三值邏輯。比如GetMessage().
bool是標準C 數據類型,可取值true和false。
根據布爾類型的語義,零值為“假”(記為FALSE),任何非零值都是“真”(記為TRUE)。TRUE的值究竟是什么并沒有統一的標準。例如Visual C 將TRUE定義為1,而Visual Basic則將TRUE定義為-1。
假設布爾變量名字為flag,它與零值比較的標準if語句如下:
if (flag) // 表示flag為真
if (!flag) // 表示flag為假
其它的用法都屬于不良風格,例如:
if (flag == TRUE)
if (flag == 1 )
if (flag == FALSE)
if (flag == 0)