C语言布尔类型详解

在C语言中,布尔类型代表逻辑值true和false。在早期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类型,表示布尔值,即逻辑值true和false。然而,该类型的值实际上是整数类型的别名,仍然使用0表示false,1表示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代表1、false代表0。只需包含该头文件,即可使用bool定义布尔值类型,以及false和true表示真假。

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

int main() {
    bool isFlag = true;
    if (isFlag)
        printf("你好~~\n");
    return 0;
}
相关推荐
Zwawa3 小时前
用两个按键做一个OLED菜单:先把选择和执行分开
c语言·单片机·嵌入式
心仪久了会沦陷7 小时前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
Severus_black10 小时前
【C++初阶】list使用及相关实现,思路顺滑流畅!
c语言·数据结构·c++·stl·list
希和202714 小时前
C语言程序设计题|有序数组插入数字冒泡排序
c语言·数据结构·算法
Zwawa1 天前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
Fruiticecake1 天前
C 程序员速通现代 C++(一):lambda、std::function、移动语义与智能指针
c语言·c++
田甲1 天前
做一款 Type-C 母座读卡器:GL3224 双卡方案实测
c语言·开发语言
·present·1 天前
CSAPP(lecture 13_02 Linking)
c语言·c++
wuyk5552 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
Navigator_Z2 天前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode