BOOL是布爾型變量,也就是邏輯型變量的定義符,類似于float、double等,只不過float定義浮點(diǎn)型,double定義雙精度浮點(diǎn)型。在objective-c中提供了相似的類型BOOL,它具有YES值和NO值。布爾型變量的值只有真(true)和假(fal),可用于邏輯表達(dá)式,也就是“或”“與”“非”之類的邏輯運(yùn)算和大于小于之類的關(guān)系運(yùn)算,邏輯表達(dá)式運(yùn)算結(jié)果為真或?yàn)榧佟?/p>中文名
BOOL
外文名BOOL
屬性布爾型變量
類似float,double等
BOOL和bool1、類型不同
bool為布爾型用作邏輯判斷
BOOL在typedef int BOOL;
在typedef long BOOL;
2、長度不同
bool只有一個(gè)字節(jié)
BOOL長度視實(shí)際環(huán)境來定,一般可認(rèn)為是4個(gè)字節(jié)
3、取值不同
bool取值fal和true,0為fal,非0為true。(例如-1和2都是true)。
如果數(shù)個(gè)bool對(duì)象列在一起,可能會(huì)各占一個(gè)Byte,這取決于編譯器。
BOOL是微軟定義的typedef int BOOL(在windef.h中),0為FALSE,1為TRUE。(-1和2既不是TRUE也不是FALSE)。
#ifndef FALSE
#define FALSE
0
#endif
#ifndef TRUE
#define TRUE
1
#endif
布爾型變量bool
布爾型變量的值只有 真 (true) 和假 (fal)。
布爾型變量可用于邏輯表達(dá)式,也就是“或”“與”“非”之類的邏輯運(yùn)算和大于小于之類的關(guān)系運(yùn)算,邏輯表達(dá)式運(yùn)算結(jié)果為真或?yàn)榧佟?/p>
bool可用于定義函數(shù)類型為布爾型,函數(shù)里可以有 return TRUE; return FALSE 之類的語句。
布爾型運(yùn)算結(jié)果常用于條件語句,
if (邏輯表達(dá)式)
{
如果是 true 執(zhí)行這里;
}
el
{
如果是 fal 執(zhí)行這里;
};
三、關(guān)于bool的小例子
(1)
#include
using namespace std;
int main()
{
bool b =1; //執(zhí)行此行后,b=1(true)
if(b)
cout << "ok!" << endl;
b = b-1; //執(zhí)行此行后,b=0(fal)
if(b)
cout << "error!" <
return 0;
}
運(yùn)行結(jié)果:OK!
(2)
#include
using namespace std;
int main()
{
bool b =1; //執(zhí)行此行后,b=1(true)
if(b)
cout << "ok!" << endl;
這里不用加吧
if(b)
cout << "error!" <
return 0;
}
運(yùn)行結(jié)果:OK!
error!
若想更了解的話,讀者可以在定義b時(shí)改成 bool b=0;看看運(yùn)行結(jié)果
C99新增類型_BoolC99標(biāo)準(zhǔn)定義了一個(gè)新的關(guān)鍵字_Bool,提供了布爾類型。以前,C程序員總是使用自己的方法定義布爾類型。0表示fal,非0表示true。可能使用char類型表示一個(gè)布爾類型,也可能使用int類型表示一個(gè)布爾類型。很多函數(shù)庫都定義了自己的布爾類型和相應(yīng)的宏,枚舉,typedef。現(xiàn)在C99把C語言原生的布爾類型帶來了。C99中同時(shí)增添的關(guān)鍵字還有_Complex,_Imaginary等。
這個(gè)頭文件定義了bool,true,fal等宏。
C2008草案中說:
“Anobject declared as type_Boolis large enough to store the values 0 and1.”
也就是說,只規(guī)定了_Bool類型的大小是至少能夠存放0和1這兩個(gè)值。并沒有規(guī)定具體的大小。這交給編譯器自由發(fā)揮了。
用gcc(32位環(huán)境)做下面的測(cè)試:
#include
#include
#include
int main(void)
{
printf("sizeof(bool):%d ",sizeof(bool));
printf("sizeof(char):%d ",sizeof(char));
printf("sizeof(int):%d ",sizeof(int));
printf("sizeof(long):%d ",sizeof(long));
return EXIT_SUCCESS;
}
輸出結(jié)果:
sizeof(bool):1
sizeof(char):1
sizeof(int):4
sizeof(long):4
由此可見,gcc是用char來實(shí)現(xiàn)_Bool類型的。
看看給_Bool類型賦值會(huì)怎樣:
#include
#ihclude
#include
int main(void)
{
bool boolean=-11212112;
printf("boolean:%d ",boolean);
return EXIT_SUCCESS;
}
輸出結(jié)果:
boolean:1
看來,gcc編譯器對(duì)待_Bool類型有自己的轉(zhuǎn)換處理。如果是0賦值給_Bool類型,那么就賦值0。如果是任意其他數(shù)據(jù),那么會(huì)賦值為1!(只是不知道其他編譯器是否如此處理,C2008標(biāo)準(zhǔn)草案沒有細(xì)說這個(gè)部分)_Bool類型只有0和1這兩個(gè)值!?
參考資料本文發(fā)布于:2023-06-03 21:23:54,感謝您對(duì)本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/92/191540.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:BOOL(數(shù)據(jù)類型).doc
本文 PDF 下載地址:BOOL(數(shù)據(jù)類型).pdf
| 留言與評(píng)論(共有 0 條評(píng)論) |