【C语言】stdbool.h——有关bool的总结

在编程和日常生活中,经常需要一种只能具有两个值之一的数据类型,如是否、开关、真假等,因此,C 有一种bool数据类型,称为booleans。布尔值表示 或true的值false

C 中的 bool 是大多数语言中的基本数据类型,可以保存两个值之一:true 或 false,1或0。它用于表示逻辑值,常用于编程中控制 if-else 语句、while 循环和 for 循环等决策语句的执行流程。判断条件为真(true或1),则执行语句。

C 中的布尔值

在 C 中,bool 数据类型不是内置数据类型。但是,C 语言的 C99 引入了_Bool,无序头stdbool头文件便可使用true和false,可以使用以下不同的方法在 C 中实现bool类型:

  1. 使用头文件“stdbool.h”
  2. 使用枚举类型
  3. 使用define声明布尔值

1. 使用头文件“stdbool.h”

要在 C 中使用 bool,必须包含头文件“stdbool.h”。包含 stdbool.h 库后,我们可以使用该数据类型,因为 stdio.h 库不提供布尔值。

  • bool:定义为_Bool
  • true:定义为1。
  • false:定义为0。
  • __bool_true_false_are_defined:定义为1。
/*
	可以将主函数中的代码复制到另外两个中,对比一下他们之间的相似和不同
*/

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

int main(){
   
    printf("%d\n", sizeof(bool));

    printf("true: %d\n", true);
    printf("false: %d\n", false);

    bool b1 = -1;
    bool b2 = 'a';
    bool b3 = 0;
    printf("%d\n", b1);
    printf("%d\n", b2); 
    printf("%d\n", b3);
    return 0;
}
  • 结果
    结果

  • sizeof(bool) 的值为1

  • 为bool型变量赋值,非零值赋值为1(true),零值赋值为0(false)

  • true与1(非零值)等价,false与0等价

2. 使用枚举类型

或者,可以使用枚举类型在 C 中实现 bool。这里我们没有导入库,而是声明一个枚举类型,以便使用 bool 作为数据类型。

#include <stdio.h>
typedef enum {
    false, true } bool;
int main(){
   
	bool a = true;
	bool b = false;

	printf("true : %d\n", a);
	printf("false : %d\n", b);
	return 0;
}

3. 自定义宏

为 false 值分配整数值 0,为 true 值分配整数值 1。还可以使用值为 0 (false) 或 1 (true) 的 int 或 char表示 C 中的 bool 数据类型。

#define bool int
#define false 0
#define true 1

int main()
{
   
    bool a = true;
    bool b = false;

    printf("True : %d\n", a);
    printf("False : %d\n", b);
    return 0;
}

在条件语句中使用 Bool

bool 数据类型通常用于条件语句,例如 if-else 语句。诸如 a 大于等于 b 或 b 大于 a 之类的条件可以使用布尔值来实现。这些条件使用条件运算符,如“==”、“>”、<”、“!=”等,返回布尔值。

#include <stdbool.h>
#include <stdio.h>
int main(){
   
	int a = 3;
	int b = 4;
	bool b = true;
	if (a > b){
   
		printf("a is greater\n");
	} else {
   
		printf("a is smaller\n");
	}

	if (b) {
    // 判断条件为真,执行
		printf("b: output: true\n");
	}

	if (!b){
    // 判断条件为假,不执行
		printf("!b: output: false\n");
	}
	return 0;
}

在循环中使用 bool

bool 数据类型也用于循环,例如 while 循环和 for 循环。条件语句是循环中最重要的部分之一。如果不使用返回布尔值的条件语句,我们就无法定义循环的断点,没有条件语句的循环将成为无限循环。

#include <stdbool.h>
#include <stdio.h>
int main(){
   
	bool a = true;
	int i = 0;
	while (a) {
   
		printf("i is %d\n", i);
		i++;
		if (i > 5) {
   
			a = false;
		}
	}
	return 0;
}
  • 结果
    结果

使用 bool 作为函数返回类型

还可以使用 bool 数据类型作为函数返回类型。函数返回类型添加了返回函数内执行的所有操作的结果的功能。

#include <stdbool.h>
#include <stdio.h>
bool is_even(int num){
    // 判断参数是否是偶数
	if (num % 2 == 0) {
   
		return true;
	} else {
   
		return false;
	}
}

int main(){
   
	int num = 5;
	if (is_even(num)) {
   
		printf("%d is even\n", num);
	} else {
   
		printf("%d is odd\n", num);
	}
	return 0;
}

C 布尔常见问题解答

  1. C 语言中的布尔示例是什么?

    布尔值是 C 中的一种数据类型,它保存两个值,可以是 true 或 false。

  2. bool 的 C 标头是什么?

    “stdbool.h”是 bool 的 C 头文件。

  3. C 中布尔值的大小是多少?

    C 中的布尔值大小为 1 个字节,因为它只需要两个值 0 和 1。

  4. C使用bool还是boolean?

    Boolean 是一种可以存储 true 或 false 值的数据类型,我们在 C 中将其用作 bool。

相关推荐

  1. 关于C语言提高一些总结

    2024-01-05 10:34:10       55 阅读
  2. 有趣C语言——我C语言之路

    2024-01-05 10:34:10       32 阅读
  3. 有用C语言相关函数

    2024-01-05 10:34:10       22 阅读
  4. C语言项目总结

    2024-01-05 10:34:10       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-05 10:34:10       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-05 10:34:10       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-05 10:34:10       82 阅读
  4. Python语言-面向对象

    2024-01-05 10:34:10       91 阅读

热门阅读

  1. 前端中级算法题

    2024-01-05 10:34:10       55 阅读
  2. Vite5 + Vue3 + Element Plus 前端框架搭建

    2024-01-05 10:34:10       55 阅读
  3. NumPy 高级教程——存储和加载数据

    2024-01-05 10:34:10       57 阅读
  4. 实现多维数组扁平化

    2024-01-05 10:34:10       56 阅读
  5. Django集成第三方标签功能

    2024-01-05 10:34:10       65 阅读