程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 【C語言】中的布爾類型,c語言布爾

【C語言】中的布爾類型,c語言布爾

編輯:關於C語言

【C語言】中的布爾類型,c語言布爾


C語言中的布爾類型

 一、相關基礎知識                                                 

首先bool  true  false為C++中的關鍵字,C語言中默認不支持這幾個字符!

 二、具體內容                                                     

在C89 (ANSI C)標准中沒有定義與布爾類型相關的內容

 

但在C99標准中新定義了一個新的關鍵字_Bool ,以及新增了一個頭文件 <stdbool.h>規范了布爾類型的操作,方便程序員進行調用!

 

在<stdbool.h>頭文件中定義了如下內容:

 

#define bool_Bool

#define false0

#define true1

 

這樣在支持C99標准的編譯器下只要包含stdbool.h ,就能非常方便的使用我們常用的bool  false  true來操作布爾類型

 

但有的編譯器可能不支持C99標准!即無法使用關鍵字_Bool以及可能無法包含stdbool.h頭文件,所以我們常可以自行定義一些布爾類型的操作:

 

#define bool int

#define true 1

#define false 0

 三、分析總結                                                     

即在不支持C99標准的編譯器中無法使用_Bool以及包含頭文件stdbool.h,在支持C99標准的編譯器中可以無條件使用_Bool,因為它是關鍵字,它的值只能為0或1,以及若想使用bool,false,true則必須需包含頭文件stdbool.h

 

 四、實例測試代碼                                                 

用如下程序在VS2015中測試:

#include<stdio.h>

int main(void)

{

_Bool a = -112;

printf("%d\n",a);

getchar();

return 0;

}

程序輸出1

即若給a賦值0,則輸出0,若給_Bool 型的a賦值其他的任何值,都會被轉變成1,也即非0都會變成1!

 

下列程序在VS2015中通過編譯,說明VS2015支持C99標准

#include<stdio.h>

#include<stdbool.h>

int main(void)

{

_Bool a = 1;

bool b = true;

bool c = false;

if (a == true)

{

printf("%d\n", a);

printf("%d\n", b);

printf("%d\n", c);

}

getchar();

return 0;

}

 


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved