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

paid星!亦舒! 2024-10-15 16:05:02 阅读 67

在编程和日常生活中,经常需要一种只能具有两个值之一的数据类型,如是否、开关、真假等,因此,C 有一种<code>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类型:

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

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

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

bool:定义为_Booltrue:定义为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 作为数据类型。

<code>#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 数据类型作为函数返回类型。函数返回类型添加了返回函数内执行的所有操作的结果的功能。

<code>#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 布尔常见问题解答

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

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

bool 的 C 标头是什么?

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

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

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

C使用bool还是boolean?

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。