C语言布尔类型详解

在C语言中,布尔类型代表逻辑值truefalse。在早期C语言标准中(C89),并没有专门为布尔值设立独立的类型。通常,使用整数0表示false,而所有非零的值表示true

1. 使用整数表示布尔值

c 复制代码
int main(){
    int handsome = 1;
    
    if (handsome) {
        printf("好帅!\n");
    }
    
	return 0;
}

以上做法不够直观,可以通过宏定义让代码更易读。

2. 使用宏定义定义布尔类型

c 复制代码
#define BOOL int   // 或者使用 typedef int BOOL; 替代
#define TRUE 1
#define FALSE 0


int main(){
    BOOL handsome = TRUE;
    
    if(handsome){
        printf("好帅~");
    }

    return 0;
}

3. C99引入的_Bool类型

C99标准引入了_Bool类型,表示布尔值,即逻辑值truefalse。然而,该类型的值实际上是整数类型的别名,仍然使用0表示false1表示true,其他非零值都会被存储为1。因此,_Bool类型本质上也是一种整数类型。

c 复制代码
#include <stdio.h>

int main() {
    _Bool isFlag = 1;
    if (isFlag)
        printf("你好~~\n");
    return 0;
}

4. 使用stdbool.h头文件

C99还提供了stdbool.h头文件,其中定义了bool代表_Bool,并规定了true代表1false代表0。只需包含该头文件,即可使用bool定义布尔值类型,以及falsetrue表示真假。

c 复制代码
#include <stdio.h>
#include <stdbool.h>

int main() {
    bool isFlag = true;
    if (isFlag)
        printf("你好~~\n");
    return 0;
}
相关推荐
宇木灵44 分钟前
C语言基础学习-二、运算符
c语言·开发语言·学习
想放学的刺客1 小时前
整理了120道单片机嵌入式面试题与答案,覆盖了硬件电路和C语言等核心领域。
c语言·c++·stm32·单片机·嵌入式硬件·mcu·51单片机
星辰徐哥3 小时前
C语言网络编程入门:socket编程、TCP/IP协议、客户端与服务器通信的实现
c语言·网络·tcp/ip
w8x9y0z13 小时前
大小端转换的隐藏陷阱:为什么你的网络数据传输总是出错?
c语言·网络编程·大小端·数据序列化
daxi1503 小时前
C语言从入门到进阶——第9讲:函数递归
c语言·开发语言·c++·算法·蓝桥杯
爱编码的小八嘎5 小时前
第3章 Windows运行机理-3.1 内核分析(5)
c语言
宇木灵7 小时前
C语言基础-五、数组
c语言·开发语言·学习·算法
宇木灵8 小时前
C语言基础-三、流程控制语句
java·c语言·前端
StandbyTime9 小时前
C语言学习-菜鸟教程C经典100例-练习79
c语言
EmbedLinX12 小时前
C语言标准库stdlib.h
c语言·开发语言·笔记