c语言中的布尔类型头文件,C语言的布尔类型(_Bool)
C語言的布爾類型(_Bool)
也許很多人都和我一樣,不知道現在的C語言已經有了布爾型:從C99標準開始,類型名字為“_Bool”。
在此之前的C語言中,使用整型int來表示真假。在輸入時:使用非零值表示真;零值表示假。在輸出時:真的結果是1,假的結果是0;(這里我所說的“輸入”,意思是:當在一個需要布爾值的地方,也就是其它類型轉化為布爾類型時,比如 if 條件判斷中的的條件;“輸出”的意思是:程序的邏輯表達式返回的結果,也就是布爾類型轉化為其他類型時,比如 a==b的返回結果,只有0和1兩種可能)。
所以,現在只要你的編譯器支持C99(我使用的是Dev C++4.9.9.2),你就可以直接使用布爾型了。另外,C99為了讓C和C++兼容,增加了一個頭文件stdbool.h。里面定義了bool、true、false,讓我們可以像C++一樣的定義布爾類型。
1. 我們自己定義的“仿布爾型”
在C99標準被支持之前,我們常常自己模仿定義布爾型,方式有很多種,常見的有下面兩種:
/* 第一種方法 */ #define TRUE 1 #define FALSE 0 /* 第二種方法 */ enum bool{false, true};
2. 使用_Bool
現在,我們可以簡單的使用 _Bool 來定義布爾型變量。_Bool類型長度為1,只能取值范圍為0或1。將任意非零值賦值給_Bool類型,都會先轉換為1,表示真。將零值賦值給_Bool類型,結果為0,表示假。 下面是一個例子程序。
#include #include int main(){ _Bool a = 1; _Bool b = 2; /* 使用非零值,b的值為1 */ _Bool c = 0; _Bool d = -1; /* 使用非零值,d的值為1 */ printf("a==%d, /n", a); printf("b==%d, /n", b); printf("c==%d, /n", c); printf("d==%d, /n", d); printf("sizeof(_Bool) == %d /n", sizeof(_Bool)); system("pause"); return EXIT_SUCCESS; }
運行結果如下:(只有0和1兩種取值)
a==1, b==1, c==0, d==1, sizeof(_Bool) == 1
3. 使用stdbool.h
在C++中,通過bool來定義布爾變量,通過true和false對布爾變量進行賦值。C99為了讓我們能夠寫出與C++兼容的代碼,添加了一個頭文件。在gcc中,這個頭文件的源碼如下:(注,為了清楚,不重要的注釋部分已經省略)
/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. This file is part of GCC. */ #ifndef _STDBOOL_H #define _STDBOOL_H #ifndef __cplusplus #define bool_Bool #define true1 #define false0 #else /* __cplusplus ,應用于C++里,這里不用處理它*/ /* Supporting in C++ is a GCC extension. */ #define _Boolbool #define boolbool #define falsefalse #define truetrue #endif /* __cplusplus */ /* Signal that all the definitions are present. */ #define __bool_true_false_are_defined1 #endif/* stdbool.h */
可見,stdbool.h中定義了4
總結
以上是生活随笔為你收集整理的c语言中的布尔类型头文件,C语言的布尔类型(_Bool)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: google工具栏中的自定义搜索按钮
- 下一篇: 咪咕阅读怎么下载小说