[英]Why does bool exist when we can use int?
這聽起來可能是一個非常愚蠢的問題。 但過去幾天一直困擾着我。 而且它不僅僅是關於C ++編程語言,因為我添加了它的標簽。 我的問題是。 在計算機科學中,布爾(bool)數據類型只有兩個可能的值。 '對或錯'。 而且,在計算機科學中,1是真的,0是假的。 那么為什么布爾存在呢? 為什么我們不使用只返回兩個可能值的整數,例如1或0。
例如 :
bool mindExplosion = true; // true!
int mindExplosion = 1; // true!!
// or we can '#define true 1' and it's the same right?
我錯過了什么?
當我們可以使用int時,為什么bool存在?
好吧,你不需要像int
那樣大的東西來表示兩個狀態,所以允許較小的類型來節省空間是有意義的
為什么我們不使用只返回兩個可能值的整數,例如1或0。
這正是bool
的意思。 它是無符號整數類型,表示true(1)或false(0)。
為此設置特定類型的另一個好處是它表達意圖而無需任何文檔。 如果我們有一個像(警告,非常人為的例子)的功能
void output(T const & val, bool log)
很容易看到log是一個選項,如果我們傳遞false它就不會記錄。 如果它是
void output(T const & val, int log)
然后我們不確定它是做什么的。 是否要求日志級別? 是否記錄的標志? 別的什么?
我錯過了什么?
表現力。
當一個變量聲明int
它可能只有0和1來使用 ,或者它可能擁有任何來自INT_MIN..INT_MAX
。
當一個變量被聲明為bool
,它被明確表示它將保存一個true / false值。
除此之外,這允許編譯器在你真正想要bool
地方使用int
時拋出警告,或者嘗試在bool
存儲2
。 編譯器是你的朋友; 給它所有可能的提示,以便它可以告訴你代碼什么時候開始看起來很時髦。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.