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;
}
相关推荐
夜天炫安全3 小时前
数据结构中所需的C语言基础
c语言·数据结构·算法
BUG_MeDe7 小时前
json格式字符串解析的简单使用 libjson-c
c语言·开发语言·json
一叶落4389 小时前
LeetCode 50. Pow(x, n)(快速幂详解 | C语言实现)
c语言·算法·leetcode
至为芯11 小时前
IP2075_34S至为芯支持C口快充的30W功率AC/DC芯片
c语言·开发语言
这波不该贪内存的16 小时前
HTTP通信与多线程服务器实战
c语言
雨落在了我的手上17 小时前
C语言之数据结构初见篇(2):顺序表之通讯录的实现(续)
c语言·开发语言·数据结构
码不停蹄Zzz17 小时前
对内存堆栈管理的简单理解[C语言]
c语言·开发语言
AMoon丶19 小时前
C++基础-类、对象
java·linux·服务器·c语言·开发语言·jvm·c++
为搬砖记录19 小时前
杰理AC695N soundbox 3.1.2打开ble宏的编译bug
c语言·开发语言·单片机·bug
一叶落43820 小时前
【LeetCode 172】阶乘后的零(C语言详解 | 数学规律 + 对数时间复杂度)
c语言·数据结构·算法·leetcode·动态规划