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;
}
相关推荐
鑫—萍5 小时前
C/C++精品算法——双指针(1)
c语言·c++·算法
智者知已应修善业8 小时前
【51单片机:两边向中间流水:即两边先点亮然后熄灭,次边的点亮再熄灭,直到最中间的两个点亮再熄灭,然后重复动作。】2023-3-4
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
Vanranrr9 小时前
车机项目中的 Widget 设计反思:从“能用”到“好用”的改进方向
c语言·c++·架构
橘子真甜~10 小时前
C/C++ Linux网络编程5 - 网络IO模型与select解决客户端并发连接问题
linux·运维·服务器·c语言·开发语言·网络·c++
wangjialelele12 小时前
详解mysql命令行操作与语言链接
c语言·数据库·c++·mysql·oracle
cs麦子13 小时前
C语言--详解--冒泡排序(Bubble Sort)
c语言·算法·排序算法
Creeper.exe16 小时前
【C语言】分支与循环(上)
c语言·开发语言
序属秋秋秋16 小时前
《Linux系统编程之进程基础》【进程状态】
linux·运维·c语言·c++·笔记·操作系统·进程状态
小龙报17 小时前
《嵌入式成长系列之51单片机 --- 固件烧录》
c语言·开发语言·单片机·嵌入式硬件·51单片机·创业创新·学习方法
Yue丶越17 小时前
【C语言】深入理解指针(四)
java·c语言·算法