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