過去,我們一般使用 int 型變量表示真/假。C99 新增了 _Bool 類型(布爾類型)用于表示真/假。_Bool 類型的變量的值只能是 0 或者 1。無論賦予任何非零值給 _Bool 類型的變量,它的值都只會是 1。例如:
_Bool i_am_true = 15; // i_am_true 的值是 1
_Bool am_i_true = (var > 15); // 當(dāng) var 大于 15 時,am_i_true 的值為 1
順帶一提,包圍 var > 15 的括號要不要都一樣,因為 > 的優(yōu)先級比 = 高。不過,使用括號可以使代碼的意思更加清晰明了。對于各種運算符的優(yōu)先級,其實沒有必要死記硬背,了解一下就可以了。實在不記得到底哪個運算符的優(yōu)先級更高的時候,就使用括號吧。此外,定義 _Bool 變量時,最好選一個意思明確的名字,讓人一看就知道它是做什么用的。例如:
_Bool no_error = 1;
while ( no_error )
{
/* ... ... */
/* if error happens */
/* no_error = 0; */
/* ... ... */
}
包含標(biāo)準(zhǔn)頭文件 stdbool.h 后,我們可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。例如:
bool no_error = true;
no_error = false;
這么做是為了和 C++ 兼容。注意,stdbool.h 是 C99 新增的。
使用文本編輯器打開 stdbool.h,一般都會找到這樣三句
#define bool _Bool
#define true 1
#define false 0
這就是為什么包含 stdbool.h 后可以用 bool 代替 _Bool ,true 代替 1 ,false 代替 0 。
本文來自: DZ3W.COM 原文網(wǎng)址:
http://www.dz3w.com/mcu/clanguage/2314.html