首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言布林類型完整指南:_Bool、stdbool.h、跨標準相容寫法

     編輯:關於C語言

標準演進

標準關鍵字標頭檔備註
C89 (ANSI C)無無慣用 int 模擬 (0=false, 非0=true)
C99_Bool<stdbool.h>定義 bool, true, false 宏
C11/C18_Bool<stdbool.h>同 C99,_Bool 為關鍵字

<stdbool.h> 內容

#define bool _Bool
#define false 0
#define true 1

跨編譯器相容寫法

#if __STDC_VERSION__ >= 199901L  // C99 或更新
    #include <stdbool.h>
#else
    #define bool int
    #define true 1
    #define false 0
#endif

_Bool 特殊行為

_Bool a = -112;
printf("%d\n", a);  // 輸出 1

// 規則:任何非零值賦給 _Bool 皆轉為 1,零為 0

VS2015 測試驗證

#include <stdio.h>
#include <stdbool.h>

int main(void) {
    _Bool a = 1;
    bool b = true;
    bool c = false;
    if (a == true) {
        printf("%d %d %d\n", a, b, c);  // 1 1 0
    }
    return 0;
}

現代 C 專案建議:無條件包含 <stdbool.h> 並使用 bool/true/false。僅在極老舊編譯器 (如 Turbo C、早期 Keil) 才需手動定義。_Bool 為關鍵字不可被宏重新定義。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved