當前位置

首頁 > 商務英語 > 計算機英語 > c中bool的用法

c中bool的用法

推薦人: 來源: 閱讀: 4.57K 次

cc中bool的用法的用法你知道嗎?下面小編就跟你們詳細介紹下cc中bool的用法的用法,希望對你們有用。

c中bool的用法

  cc中bool的用法的用法如下:

我們知道在C++裏有專門的bool類型,用來表示真或假。但是在C語言裏沒有這樣的類型(至少我是一直這麼認爲的),表達式的值0爲假,非0爲真。所以條件判斷語句( if(...)、while(...) )非常靈活,甚至一個指針類型都可以是條件表達式。

爲了使程序更清晰,我們常常會給出如下的宏定義:

typedef int BOOL;

#define TRUE 1

#define FALSE 0

這是最常見的寫法,能被任何C語言編譯器認可。

今天我在一段程序裏看見這麼一行 #include <stdbool.h>,這個陌生的頭文件還以std打頭而且還和bool有關,引起了我的警覺,立刻百度之。得知這是C99標準新增的頭文件,意在引入bool類型,使之和C++兼容。隨後我看了一下這個頭文件的源代碼,內容如下:

/*

* ISO C Standard: 7.16 Boolean type and values <stdbool.h>

*/

#ifndef _STDBOOL_H

#define _STDBOOL_H

#ifndef __cplusplus

#define bool _Bool

#define true 1

#define false 0

#else /* __cplusplus */

/* Supporting <stdbool.h> in C++ is a GCC extension. */

#define _Bool bool

#define bool bool

#define false false

#define true true

#endif /* __cplusplus */

/* Signal that all the definitions are present. */

#define __bool_true_false_are_defined 1

#endif /* stdbool.h */

這個頭文件很短,而且也很明瞭,不過我對_Bool這個類型產生的興趣。又一翻百度,發現這是C99標準引入的新的關鍵字。對,是關鍵字,而不是宏定義,也不是typedef。通過sizeof(_Bool);得知這個類型佔1個字節,而且無論給這個類型的變量賦任何非0整數值,其值都是1,這也說明了他不是其他整數類型的別名。

好了,其實說白了,C語言不是沒有布爾類型,只能說在C99標準之前沒有。現在只要在源文件中包含stdbool.h這個頭文件,就可以在C語言裏像C++那樣使用bool類型了。