C 語言之布林型別介紹

安全劍客發表於2020-07-03
在C語言標準(C89)沒有定義布林型別,所以C語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變數的做法: //定義一個int型別變數。

C 語言之布林型別介紹C 語言之布林型別介紹
C 語言標準(C89) 沒有定義布林型別,如果你使用 true 和 false,會出現以下錯誤:

infinite.c:5:12: error: use of undeclared identifier 'true'
    while (true) {
1 error generated.
make: *** [infinite] Error 1

我們可以藉助 C 語言的宏定義來哦設定:

//宏定義布林型別
#define BOOL int
#define TRUE 1
#define FALSE 0
 
//定義一個布林變數
BOOL flag = FALSE;

也可以透過列舉類來定義:

typedef enum
{
    true=1, false=0
}bool;

例項

#include//計算n!,n的值在main中定義
int main(void)
{
    int n = 10;    //計算疊乘數
    int sum = 1; //用來存放疊乘的結果
    typedef enum
    {
        true=1, false=0
    }bool;
    bool flag = false;    //疊乘標記
    
    int num = n;    //迴圈次數
    while( !flag )
    {
        sum = sum * (num--);
        //當num=1時結束迴圈
        if( num == 1)
        {
            flag = true;
        }
    }
    printf ("%d的疊乘值為 %d \n", n, sum);
    return 0;
}

輸出結果為:

10的疊乘值為 3628800

C99 還提供了一個標頭檔案 定義了 bool 代表 _Bool,true 代表 1,false 代表 0。只要匯入 stdbool.h ,就能非常方便的操作布林型別了。

例項

//匯入 stdbool.h 來使用布林型別
#include#include//計算n!,n的值在main中定義
int main(void)
{
    int n = 10;    //計算疊乘數
    int sum = 1; //用來存放疊乘的結果
    bool flag = false;    //疊乘標記
    
    int num = n;    //迴圈次數
    while( !flag )
    {
        sum = sum * (num--);
        //當num=1時結束迴圈
        if( num == 1)
        {
            flag = true;
        }
    }
    printf ("%d的疊乘值為 %d \n", n, sum);
    return 0;
}

輸出結果為:

10的疊乘值為 3628800

原文來自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2702391/,如需轉載,請註明出處,否則將追究法律責任。

相關文章